find命令是:在linux的bash shell查找命令
find ./ \(-path dir_a -o -path dir_b \) -prune
我要轉換爲:
./find.sh dir_a dir_b
所以我的代碼(在不工作):
function myfind() {
num=1
tmp=""
for i in [email protected]
do
tmp="$tmp -path './$i' "
if [ $((num++)) -ne $# ]
then
tmp="${tmp} -o"
fi
done
echo $tmp # this is ok!!
find ./ \($tmp \) -prune # is doesn't work, why???
}
請勿使用單個變量'tmp'請改用[array](http://mywiki.wooledge.org/BashGuide/Arrays)。在[此鏈接]中檢查'quoting'中的最後一個代碼片段(http://mywiki.wooledge.org/BashGuide/Practices#Quoting) – anishsane 2015-03-25 06:46:57
您使用'$ @'未加引號顯然是錯誤的。它需要用雙引號引起其特殊含義,與'$ *'(引用或不引用)不同。 – tripleee 2015-03-25 06:52:33