TIA提前尋求幫助。這是課程,所以進一步閱讀總是感激!Linux shell腳本刪除/恢復/垃圾箱
基本上我必須在bash中編寫3個腳本。一個'刪除'文件到我創建的目錄(〜/垃圾)。另一個可以在需要時進行恢復,第三個可以永久刪除它。
我有點卡在我的垃圾腳本。它似乎並沒有實際刪除任何內容,因爲ls顯示了所有文件仍在那裏。我也遇到了麻煩(-a),我已經爲用戶添加了一次全部垃圾,如果不是,那麼它應該要求確認每個找到的文件。
這裏就是我剛纔......
#!/bin/bash
if [ "$1" = "-a" ]
then
cd ~/rubbish
rm ~/rubbish
mkdir ~/rubbish
echo "All files have been deleted"
else
cd ~/rubbish
ls > rubbish
for line in 'cat rubbish'
do
echo "Do you want to delete?" $line
echo "Y/N"
read ans
case "ans" in
Y|y) rm $line;;
N|n) " ";;
esac
done
fi
正如我所說的,它不會看到-a,並跳過第一個分支,並通過第二看似細微運行,但是當我LS 〜/垃圾所有的文件仍然存在。
編輯感謝您的幫助!人造衛星,呃不能真正看到你的評論改變了什麼,除了添加分號?和inductiveLoad,你的答案是王牌,但我找不到一個正確的工作方式,失去耐心,並超級基本。像這樣....
#!/bin/bash
if [ "$1" = "-a" ] ;
then
cd ~/rubbish;
rm ~/rubbish/*;
echo "All files have been deleted";
else
rm -i ~/rubbish/* ;
fi
嘗試這樣做'#/斌/慶典;!如果[ 「$ 1」= 「-a」];然後,CD〜/垃圾; RM〜/垃圾;的mkdir〜/垃圾;回聲「所有文件已被刪除「; else; cd〜/垃圾; ls>垃圾;對於'cat垃圾'中的行; do; echo」你想刪除嗎?「 $ line; echo「Y/N」; read ans; case「ans」in; Y | y)rm $ line ;;; N | n)「」;;; esac; done; fi' –