我試圖寫的是Bourne shell腳本,將做到以下幾點:如果文件沒有在目標目錄中存在Bourne shell腳本
- 讀入文件名
- ,它會如果文件存在於目標目錄中,則它將被移動到/垃圾文件夾
- 如果文件存在於目標目錄中,但是同名文件存在/ trash文件夾,它仍然會將文件移動到/ trash目錄,但會附加_bak範圍離子到文件。
我對Bourne shell的使用很少,所以這裏是我到目前爲止的內容。任何指針或提示將不勝感激,謝謝!
#!/bin/sh
#Scriptname: Trash Utility
source_dir=~/p6_tmp
target_dir=~/trash
echo "Please enter the filename you wish to trash:"
read filename
if [ -f $source_dir $filename]
then mv "$filename" "$target_dir"
else
echo "$filename does not exist"
fi
不要讀取文件名作爲輸入;取而代之的是文件名作爲參數。 – 2014-10-09 02:58:49
你備份的東西有點荒謬。如果*另一個帶有_bak擴展名的文件會怎麼樣? – Lucio 2014-10-09 03:00:47
'if [-f $ source_dir $ filename]'會展開爲'if [-f〜/ p6_tmp SOME-FILE]'。它應該擴展到'〜/ p6_tmp/SOME-FILE'。爲此,您可以嘗試使用'if [-f $ {source_dir}/$ {filename}]'。 – 2014-10-09 03:08:50