タグ

studyとzshに関するraimon49のブックマーク (16)

  • シェルスクリプトの [ ] と [[ ]] の違いを歴史的に解説 〜 言語設計者の気持ちになって理解しよう - Qiita

    はじめに bash などのシェルには [ ... ] と [[ ... ]] の二種類の比較方法があります。一つはコマンド、もう一つはシェルの文法なのですが、具体的にはこの二つは一体何が違うのでしょうか? そもそもなぜ似ている機能が二つもあるのでしょうか? この記事は言語設計者の気持ちになって考えることで、その理由を解き明かそうという記事です。 なお、違いについての簡単な説明については「test と [ と [[ コマンドの違い - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog 」の記事がよくまとめられていますので紹介します。一通りの違いを素早く知りたい方はこちらを参照してください。 参考 シェルの歴史や種類については「シェルの歴史 総まとめ(種類と系統図)と POSIX の役割」に詳しくまとめています(系統図とか頑張って書いたので見

    シェルスクリプトの [ ] と [[ ]] の違いを歴史的に解説 〜 言語設計者の気持ちになって理解しよう - Qiita
  • シェルスクリプトのオプション設計ガイドライン - Qiita

    僕はコマンドラインで使うシェルスクリプトを書くことがけっこうあるんだけど、インターフェイスというか呼び出し方はとても大事だと思ってるので、そこにわりと時間をかけて考えるようにしてる。実装はいつでも変更できるけど呼び出し方を変えた時は利用者にも変更を強いるので、できれば最初から良い設計で作りたいと思っている。 そこで、僕がシェルスクリプトのオプションとか引数とかの仕様を決める上で注意していることをまとめてみた。シェルスクリプトや、その他コマンドラインのツールを作るときに参考にしてほしい。 シェルの種類は bash や zsh を想定してるけど、実装によらない話なのでどんなシェルでも使えると思う。 エラーの時に Usage (使い方ヘルプメッセージ)を表示するのはやめる エラーになった時に Usage (使い方ヘルプメッセージ) を表示するスクリプトがあるけど、やめたほうがいいと思う。例えばこ

    シェルスクリプトのオプション設計ガイドライン - Qiita
    raimon49
    raimon49 2014/05/21
    aliasから呼ばれることも考慮する。例えば判定の意味を持つオプションが両方とも指定されているなら後に指定した方を優先する。なる。
  • zsh で source して使うプラグインを作るのは止めにしよう - Qiita

    特に、cd や bindkey など、今動いているシェル上で副作用のある処理を行いたいときは source を使わないとうまくいかないだろう。 一方、source にはこんなデメリットがある。 .zshrc でいっぱい source するとzsh の起動が遅くなる 現在動いているシェルの alias 設定の影響を受ける 特に2つめが厄介だ。例えば grep とかしたときに、alias grep='grep -E' なんか設定してあったら正規表現の意味が変わってしまう。一応 command grep とすれば alias を設定していない元の grep を実行できるけど、いちいちそう書くのも手間だ。 そんなときは autoload を使う形に書き換えるとうまくいく。 autoload というのは「関数体の読み込みを実行する時まで遅らせる」という zsh の機能のこと。これで ~/.zshr

    zsh で source して使うプラグインを作るのは止めにしよう - Qiita
    raimon49
    raimon49 2013/12/20
    autoloadに指定する-U -zの意味とか。何も知らずいコピペしてたから勉強になる。-Uでalias設定の影響を受けなく出来る。
  • zshのカレンダー | Advent Calendar 2012 - Qiita

    URLYou can post either your article on Qiita or your blog post. About reserved postingIf you register a secret article by the day before the same day, it will be automatically published around 7:00 on the same day. About posting periodOnly articles submitted after November 1 of the year can be registered. (Secret articles can be registered anytime articles are posted.)

    zshのカレンダー | Advent Calendar 2012 - Qiita
  • zshのautoload - ✘╹◡╹✘

    zsh autoload 意味— 人月さん (@r7kamura) 11月 25, 2012 使い方 % echo $fpath /usr/local/Cellar/zsh/4.3.12/share/zsh/functions /usr/local/Cellar/zsh/4.3.12/share/zsh/site-functions % cat $fpath[1]/a echo 1 % autoload a % a 1 仕組み autoload aが呼び出される autoload用に関数名aを記録する 関数aが呼び出される 配列$fpathを元に、ファイルaを探す ファイルaが見つかる ファイルaの中身を関数aの実装としてメモリ上に読み込む 関数aが実行される -U オプション aliasを無効化 % alias echo='shutdown -h now' % autoload a %

    zshのautoload - ✘╹◡╹✘
    raimon49
    raimon49 2012/11/28
    alias無効化の威力がとても分かり易い。
  • はてなブログ | 無料ブログを作成しよう

    わたし的棚ぼた一万円選書 急に千葉さんに手渡された封筒、開けてみたら1万円札が1枚。何ごとかと思えば、同期の出張を代わったお礼をもらったらしい。 「葵はワンオペで育児してくれたから」と半分わけてくれました。 泡銭の1万円 これはもう、わたし的1万円選書をしろという思し召しなのでは……

    はてなブログ | 無料ブログを作成しよう
  • Command Lineで使用しているツールまとめ vol.1 - Qiita

    Command Lineで使用しているツールを簡単にではありますが、まとめてみようと思います。私が知らない便利ツールはまだまだたくさんありますので、ここに掲載されているもの以外で便利なものがあれば、ぜひ教えてください。 この記事に貼り付けてあるリンクは、キーワードに関連する適切な場所へと誘導してくれます。非常に有効なので、ぜひ参照してみてください。 また、私は基的にパソコンのことは何もわかっていないので、記事内には誤りを含む可能性があります。よって、できる限り自分の環境を把握した上で、適時読み換えてもらえればと思います。特に、設定ファイルの場所については気をつけてください。また、GitやHomebrew、MacPortの導入説明などは省略していますので、注意が必要です。 zsh Shellであるzshを拡張する設定の数々を紹介していきたいと思います。簡易にではありますが、もっと良い設定が

    Command Lineで使用しているツールまとめ vol.1 - Qiita
  • http://alex.jurkiewi.cz/.zshrc

  • http://www.gentei.org/~yuuji/rec/pc/zsh/zshcompsys.txt

  • zshのcompletion functionを作り方 - 技術録(仮)

    メモ, zshコマンドラインからvim scriptをとってきてインストールしてくれる、vimanaという便利なプログラムがある。これはとても便利なのだが、前々からzshで補完が効かないのが正直めんどくさいと思っていた。 ないものは自作しよう、とがんばっていろいろとやっていたのだが、なかなか思うように動作してくれず悪戦苦闘した結果、納得いくものができたのでdotfilesにcommitしておいた。 正直、documents読んでも意味不明だったし、何がどうなってるのかよくわからなかった。それで、この難解な仕様を読み込むのが大変だという人は自分にもいるはずなので、まとめ記事メモを書いてみる。そんな大したものではないのだが。 さて、completion functionだが以下のようになった。最新版はこちら。echo $fpathして、通ってるdirectoryにぶち込む。もしくはfpath=

  • おすすめzsh設定 - 2011-09-05 - ククログ

    他の人がzshを使っているのを見ていると、「もっと便利に使えるのに」と、もやっとしたり、「え、その便利な機能ってなに?」と、発見があったりします。だれかに「この設定をすると便利ですよ」と話しやすくするために、今のzshのおすすめ設定をここに記しておきます。 もし、Emacsも使っている場合はおすすめEmacs設定もどうぞ。 ディレクトリ構成 長年漬け込んできたzshの設定がそこそこの量になっているので、以下のようなディレクトリ構成にして分類しています。主に、zsh標準機能の設定と追加パッケージの設定を分けるためにこうしています。 ~ ├── .zshrc # シェルを起動する毎に読み込まれる。 │ # ~/.zsh.d/zshrcを読み込んで │ # 標準機能の追加設定を行う。 ├── .zshenv # ログイン時に一度だけ読み込まれる。 │ # ~/.zsh.d/zshenvを読み込ん

    おすすめzsh設定 - 2011-09-05 - ククログ
  • 高密度小池 / zsh の謎の挙動に悩まされていました

    zsh の謎の挙動に悩まされていました nohup unko としてプログラムを起動した場合、端末を閉じたり exit コマンドを発行した場合にもそのまま動いていて欲しいものですが、 zsh 上ではこれも終了されてしまう。 しかし、シェルスクリプトを書いてその中で nohup していた場合は端末や zsh を殺しても大丈夫。 ちょっと調べたら答えがあった。 端末を殺した場合のフロー 端末が殺される→中で実行しているシェルに SIGHUP が送られる→シェルがよろくやる んでこれが bash の場合は SIGHUP を送らない のだけど zsh の場合は 子プロセス全部に問答無用で SIGHUP を送る ので、 nohup していても殺されてしまう。 シェルスクリプトの中で nohup していて死なないのは、 端末の死→ zsh にSIGHUP が来る → zsh

    raimon49
    raimon49 2011/08/01
    setopt nocheckjobs
  • zshとSIGHUPとその設定 - 技術メモ帳

    shell と SIGHUP - odz buffer 関連: 一度 tty から起動したプロセス (csh/ksh 版) - にぽたん研究所 なるほど。zshではデフォルトだと 終了時にSIGHUPが送信されるらしい。 手元のbash2.0で試してみたら終了時にSIGHUPが送信されなかった。 zshで終了時に警告を出さないようにするには、 setopt nocheckjobs とすればよいようだ。 あと、zshにはいきなりdisownの状態(job tableに加わらない状態)で バックグラウンド実行する &! という記法がある。 SIGHUP送られない。 % perl nohup.pl &! % exit % pgrep -fl nohup.pl 524 perl nohup.pl -- 余談だが、zshではsetoptに指定するオプション名に 好きなだけアンダーバーをつける事が出来

  • zsh-lovers 翻訳 - cuspy.org

    この文書についてhttp://grml.org/zsh/zsh-lovers.html の和訳です 誤字, 誤訳など有りましたら http://twitter.com/hamano まで 名前zsh-lovers - Z shell の為のチップスやトリックや用例 概要これを読んでね. ;-) 要約私たちが zsh のマニュアルを読む度、用例やシェル生活における単純な通例が無いことに驚嘆します。 zshは多くの機能を持ちます、しかしmanページには(procmailex(5)の様な)用例が在りません。 それが私たちがこのmanページを書いた理由です。 大部分のトリックとonelinerはzsh-usersメーリングリスト、zsh-workers、google、ニュースグーループと私たちから生まれました。 詳しくはLINKSセクションを見てください。 注意: この manページ(zsh-lo

    raimon49
    raimon49 2011/07/21
    便利なエイリアス用例集も参考に
  • svn,git,hgコマンドのaliasあれこれ - maru.cc@はてな

    バージョン管理システム使ってますか? 最近、会社のリポジトリをSubversionからGitにがつがつ移行してます。Gitのブランチを使った Git Flowの考え方を浸透させるべく、反映ツールのGit対応などしております。 それと同時に、MyBikeJPプロジェクトは、Mercurialで管理を行っています。 微妙に似ているけど違う gitコマンドと hgコマンドに混乱しまくりで、先日、マージにミスって @key3 さんに迷惑かけちゃいました。 ということで、環境差異を吸収し、さらにミスが減って楽になるような aliasやシェル関数を設定しました。 ちなみに zshです。 Subversion svnでは、元々、.zshrc を id:sotarok さんのをベースにしていた関係でショートカットを知りました。 http://trac.nequal.jp/browser/public/do

    svn,git,hgコマンドのaliasあれこれ - maru.cc@はてな
    raimon49
    raimon49 2011/01/24
    stgは時間かかりそうだけど一発で確認できるのは良いなぁ。
  • zsh symbolic programming

    Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)

    zsh symbolic programming
    raimon49
    raimon49 2011/01/10
    記号プログラミングでHello Worldを出力するまでに道のり。面白くて分かり易い!! すごい。
  • 1