シェル スクリプトで find を使用して、ワイルドカード パターンに一致するファイルの数をカウントし、1 つしかない場合はファイルの名前を取得しようとしています。しかし、ワイルドカード パターンをバックティック展開に渡すのに問題があります。
FINDCMD="find . -iname *DATA*.txt"
DATACOUNT=$($FINDCMD | wc -l)
if [ $DATACOUNT -eq 1 ]
then
use-data $($FINDCMD)
else
echo bugger
fi
これは機能しません。シェルは、find の呼び出し時にDATA .txt を展開します。アスタリスクを渡して検索したい。
私がそれを作るなら
FINDCMD="find . -iname '*DATA*.txt'"
次に、シェルはアスタリスクを展開しませんが、find は単一引用符を取得し、何も一致しません。