「検索」コマンドを動的に作成して、何かが返されるかどうかを確認したいと思います。
これは最小化された例です。ファイルを含むディレクトリで、
find . -name '*'
もちろんファイルを返します。だが
VAR="find . -name '*'"
$VAR
何も返しません。引用符の解釈の問題のように見えます。しかし、なぜ?
(実際には、特定のプレフィックスを持つファイルが存在するかどうかを確認したいので、を使用し-name '${MYPREFIX}*'
、内の出力をキャプチャして$()
、結果の文字列が空かどうかをテストするつもりでした。)
これが些細なことである場合はお詫び申し上げます。私は答えを見つけるために時間を費やしましたが、私が見つけたすべてのケースはどういうわけか異なっていました。通常、問題は、findコマンドでワイルドカードを実行する必要があるときにシェルがワイルドカードを展開することです。ここで、シェルは時期尚早の拡張を行いませんが、findも文字通りの引用符を受け取るためか、findも行いません。洞察をありがとう。