2016-12-30 2 views
0

curlはコマンドラインで頻繁に使うコマンドです。 ZSHを使用しているときに、# - オプションが機能しないことが判明しました。そのオプションは、bashで正常に動作します - 以下のコードを参照してください:もちろんzshで何を意味するのか分かりません

ZSH: 
→ curl --progress-bar www.google.com > google.html 
######################################################################## 100.0% 

→ curl -# www.google.com > google.html 
zsh: no matches found: -# 

BASH: 
$ curl --progress-bar www.google.com > google.html 
######################################################################## 100.0% 

$ curl -# www.google.com > google.html 
######################################################################## 100.0% 

、私は(つまり、完全なオプション名を入力しない場合は、この問題を回避するために、エイリアスを定義することができます - プログレスバー)。しかし、私はちょうどZSHのどの部分がこの動作を制御しているのか、どのような方法であれ、自分の.zshrcファイルでこの動作をカスタマイズ/再定義することができるかどうか不思議です。便利な情報をお寄せいただきありがとうございます。 zsh

+1

引用。 '' - # ''はどんな種類のシェルローカルな振る舞いもなくします。 –

答えて

4

.zshrccurl

setopt extended_glob 

ために、この問題を引き起こしている以下の行を持っている場合は、このオプションが用パターンの一部として文字を、#トリート〜と^」

を意味し、ファイル名の生成など。(最初の引用符で囲まれていない〜は、常に名前付きディレクトリ拡張を生成する) "

だから、の代わりに-#を使うのが良いと思います。(または)引用符で囲むと、文字をそのまま保存して、シェルを展開させないようにしてください。

curl progress-bar option in GitHubでこれが見つかりました。

+0

ありがとう!引用符で ' - #'はうまくいきます!そして関連情報のために! – charlesqwu

+0

@charlesqwu:私の答えの左側にある小さい目盛りをクリックして、それを受け入れたことを示すことができます。 – Inian

+1

さらに、問題は、デフォルトでは 'zsh'が' bash'のようにリテラル文字列として扱うのではなく、何もエラーにマッチしないパターンを扱うことです。 'setopt nonomatch'を使うとそれが変更されます。 – chepner

関連する問題