我的脚本如下:
#!/bin/sh
rm -rfv /home/user/Documents/Exercise/*
cp -rfv /home/user/Documents/ExerciseShare/ExerciseFiles/Word/Advanced/ /home/tp3/Documents/Exercise/
如果我通过终端单独运行这些命令,它们可以正常运行。我将它们放入脚本中(如上所述),当我尝试调整脚本时,终端窗口闪烁约一秒钟,什么也没发生。
我的解决方案尝试:
- 添加
wait
到脚本末尾 - 没有成功 - 右键单击脚本>属性>权限>执行-设置
- 尝试过,
Run
但Run in Terminal
没有成功
我正在使用 Ubuntu 12.10 64 位
答案1
经过几个小时的摸索,我找到了一个意想不到的答案。
我创建了一个新的空白文档,并仅添加了我想要的两行(没有 #!/bin/sh 的标题):
rm -rfv /home/user/Documents/Exercise/*
cp -rfv /home/user/Documents/ExerciseShare/ExerciseFiles/Word/Advanced/ /home/tp3/Documents/Exercise/
然后我保存了文档,右键单击>属性>权限>作为程序执行
答对了!
感谢所有提供帮助的人!
答案2
根据您的评论,您在 shebang 行末尾引入了一个额外的回车符 (\r)
/bin/sh^M: bad interpreter
如果您在 vim 中打开原始文件,您会看到该^M
字符;您可以直接删除它。或者,您可以在 hexedit 等十六进制编辑器中打开它,您会看到一个额外的0D
。
Linux 换行符是单个换行符 (\n,0x0A),而 Windows 换行符则让人回想起打字机时代 (\r\n,0x0D 0x0A)。