我想在shell腳本中使用find來計算我匹配通配符模式的文件數,然後獲取文件的名稱(如果只有一個)。但我無法通過擴展模式來解決通配符問題。如何將shell通配符傳遞到反引號命令
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'"
然後shell不擴展星號,卻發現得到的單引號和比賽無關。
因爲我想重複使用相同的命令來獲取文件名,如果只有一個。更好的可維護性只能在一個地方定義命令。但是,如果我必須這樣做,我可以像你所建議的那樣做。必須有更好的辦法.. – blueshift 2011-04-01 08:38:55