zsh: no matches found について
さて、今回は、zsh のお話。
ちょっとプログラムの関係で、コマンドライン引数から記号( # とか)を指定したら
zsh: no matches found: #
とかってなってしまいます。
あ、コマンドライン引数っていうのは、main 関数の引数のこと。つまり、
int main(int argc, char *argv[])
のやつですね。要するに argv です。
bash でプログラムを実行したら普通に実行出来たので、これは zsh のせいらしい...。
と、いうわけで、.zshrc に以下の記述を追加します。
setopt nonomatch
これで source で .zshrc を読み込んであげればオッケー。
実行出来るはず。
楽勝でしたとさ。
エラーの原因は、グロッビングが原因らしい。
setopt EXTENDED_GLOB
でグロッビングでの特殊文字の使用をするという形になっていて、そこに反応したせいで、上の引数の # がグロブでの使用となり、 no matches found となってしまった、、、という。
なんともややこしい...。
この記述( setopt nonomatch )もどうやら少し反則的な書き方らしいけど、解決したのでまあ良しかな?
今回はこんなところで。