一致しないグローバルパターンから空の文字列を自動的に取得する方法

一致しないグローバルパターンから空の文字列を自動的に取得する方法

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。これにより、文字列リストではなくファイル名の間にスペースがある文字列が生成されます。 (望むより噴射とは何ですか?シェルプログラミングでは、なぜこれが重要なのでしょうか?)

おすすめ記事