3つのファイルがあるフォルダがあるとしましょう。
foo1
foo2
bar
1. 走れば
list_of_files=$(print foo*)
echo $list_of_files
私は得る:foo1 foo2
2.走れば
list_of_files=$(print bar*)
echo $list_of_files
私は得る:bar
三。しかし、私が走ると
list_of_files=$(print other*)
echo $list_of_files
私は次のようになります:(zsh: no matches found: other*
変数が$list_of_files
空であるにもかかわらず)
glob拡張子と一致できないときにzshが文句を言わないようにする方法はありますか?
私の目標は上記のメカニズムを使用することです何も言わずに指定されたglobパターンに一致するファイルのリストを収集します。
ベストアンサー1
null_glob
パターンにglob修飾子を使用するオプションを有効にしますN
。
list_of_files=(*(N))
スクリプトまたは関数のすべてのパターンに対してこれを行うには、次のnull_glob
オプションを設定します。
setopt null_glob
この回答bashとkshと同等のものがあります。
代替コマンドを使用またはコマンドしないでくださいprint
。これにより、文字列リストではなくファイル名の間にスペースがある文字列が生成されます。 (望むより噴射とは何ですか?シェルプログラミングでは、なぜこれが重要なのでしょうか?)