答え1
これは*
…不利だ」全体的な状況そしてそれはbashによって「現在のディレクトリのすべてのファイル」に拡張されるので、デフォルトでは現在のディレクトリにあるすべてのファイルのスペースで区切られたリストに展開されます(これは通常多くのbash組み込みファイルで予想される形式構造です。フロー制御) 。
Globsはそれ自体で使用できるだけでなく式の一部としても使用できるため、bash変数にディレクトリが格納されているとします$searchdir
(bash変数名を指定するときに誤って重要な環境変数を上書きしないように注意してください。$PATH
)
select s in "$searchdir"/*
「のすべてのファイル」に展開されます$searchdir
。
ノートただし、ディレクトリが空の場合、式は次のようになります。文字通りの意味 *
(または文字通り/the/actual/value/pointed/to/by/searchdir/*
)設定しない限りnullglob
オプション渡す
shopt -s nullglob
その後、ディレクトリが空の場合、glob設定は通常、希望する空のリストに展開されます。