語法錯誤:意外的文件結尾

語法錯誤:意外的文件結尾
#!/bin/sh
if [ -e $1 ] ; then 
mv $1 $1_$(date +%Y%m%d%H%M) 
fi
exit 0

我的要求是查找一個文件,如果該文件存在,則重命名該文件並退出程序,只有當該文件存在時,我們才需要重命名

我收到上述錯誤

答案1

一般來說,bash 變數應始終用雙引號引起來。

例如,假設 $1 是My File.txt。您的腳本嘗試執行此操作:

mv My File.txt My File.txt_201501010101

mv意味著您想要將文件MyFile.txtMy一起移動到目的地File.txt_201501010101

你想要的是這樣的:

mv "My File.txt" "My File.txt_201501010101"

請參閱以下內容以了解更多詳細資訊和要避免的其他陷阱: http://mywiki.wooledge.org/BashPitfalls#cp_.24file_.24target

exit 0腳本末尾的PS是多餘的。如果腳本完成且沒有錯誤,則退出狀態隱含為 0。

相關內容