タグ

ブックマーク / qiita.com/mollifier (2)

  • zshで簡単にコマンドライン オプションを解析する - Qiita

    シェルスクリプトでコマンドライン引数をオプションとして解析したいときは、getoptsを使うのが一般的なやり方だ。 でも、getoptsはGNUスタイルの長いオプションに対応していないので、--helpとかのオプションを受け付けれないという欠点がある。そんなときでも、zshならzparseoptsというコマンドを使えば長いオプションでも解析できるので紹介する。 基パターン まずは一番簡単なパターンとして、次の3つのオプションを解析する例を紹介する(mvコマンドのオプションをイメージしている)。どのオプションも引数は取らない。 -v --help --version このオプションをパースするには、zparseoptsというzshの組み込みコマンドを使って、次のように書く。 #!/bin/zsh local -A opthash zparseopts -D -A opthash -- -h

    zshで簡単にコマンドライン オプションを解析する - Qiita
    syohex
    syohex 2015/03/22
  • 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
    syohex
    syohex 2013/12/13
  • 1