语法错误:意外的文件结尾

语法错误:意外的文件结尾
#!/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。

相关内容