特定のパターンを含むファイルを検索してみました。パターン自体はtmpfl変数にあります。
echo $tmpfl --> ack_2*
今、私は現在の作業ディレクトリ自体からファイルを見つけるために以下を使用しようとしました。
find . -name $tmpfl
find . -name ($tmpfl)
しかし、それらのどれも働かないようです。しかし、
find . -name ack_2*
奇跡的に動作します。
このアプローチにはどのような問題がありますか?これはUnixの単純な変数置換です。そうですか?それでは、私が何を見逃しているのでしょうか?
答え1
変数の周りに「」を入れる必要があります。
find . -name "$tmpfl"
答え2
-name
パラメータが変数であるかハードコードされた値であるかにかかわらず、パラメータを二重引用符で囲む必要がある場合(スペースや印刷できない文字を除く)があることがわかりました。いつも使う習慣をつけることをお勧めします。