我試圖用變量替代輸出來給出另一個輸出。我遇到的問題是$ apps。它給了我「語法錯誤:錯誤的替代」。從變量替代輸出以給出另一個輸出
$ appletDir是一個桌面快捷方式的目錄。問題是某些快捷方式與圖標(png)名稱不同。所以我需要用連接到它的png替換程序名稱。我把它和註釋掉的if語句一起使用。如果這個替代可以工作,那麼我的腳本會更好看。因爲我需要放下一些這個。
我希望它在通過圖標文件夾時查找「general_call」而不是「rtcom-call-ui」。因爲png被稱爲「general_call」。圖標文件夾是變量$ icoDir64 $ icoDirSca。
for applet in $appletDir*
do
app=`basename $applet | sed -e 's/.*://g' -e 's/.*osso-//g' -e 's/\.desktop.*//g'`
apps="${app/rtcom-call-ui/general_call}"
#if [ "${app}" = "rtcom-call-ui" ]; then
# app="general_call"
#fi
#echo $apps
#done
#exit 0
found=`find ${icoDir64} ${icoDirSca} -name "*.png"`
for file in $found
do
base="`basename ${file}`"
if [ "${base}" = "${app}.png" -o "${base}" = "tasklaunch_${app}.png" -o "${base}" = "general_${app}.png" ]; then
echo "WORKING!!!!!!!!!!!!!!!!!! $file"
fi
done
done
註釋掉的代碼應該是'應用='不'應用='到幾分相似是到'應用= $ {應用/。 ../...}行。 – 2010-09-06 14:09:28
是的,但我把if語句換成了$ apps替換變量..現在感謝Jonathan,我將刪除if-statment,因爲它不再需要,並且在替換變量之後篡改腳本。 – AlMehdi 2010-09-06 14:51:08
如果你的文件名中有空格,最好把'find'變成'while read'循環,而不是用'for'遍歷'find'的結果。 – 2010-09-06 15:20:17