![执行 shell 脚本](https://linux22.com/image/1135964/%E6%89%A7%E8%A1%8C%20shell%20%E8%84%9A%E6%9C%AC.png)
我有一个脚本:
echo "start"
cd ~/GoogleDrive/
drive push path-to-file/
echo "done"
它将文件路径上传到我的 Google Drive 帐户。我可以毫无问题地运行此脚本,sh UploadToDrive.sh
但当我尝试通过双击脚本来执行它时,我收到错误
start
/home/user/UploadToDrive.sh: 3: /home/user/UploadToDrive.sh: drive: not found
done
我在这里发布它是因为看起来 Gnome 做错了什么,而不是脚本出了问题,因为当我使用sh
或./
明确时它起作用。如果相关的话,我正在使用带有 Gnome 3 的 Ubuntu 15.10。
答案1
由于该.sh
扩展只是对用户的一个提示(是的,Linux 不会像 Windows 那样在执行扩展等等的过程中跳舞)您的脚本缺少第一个 shebang 行,因此您的脚本应该是这样的:
#!/bin/bash
echo "start"
#you might want to use explicit paths here this is why your script fails
cd /home/username/GoogleDrive/
#you might want to use explicit paths here this is why your script fails
drive push path-to-file/
echo "done"
完成更改后,请确保您的文件具有适当的权限:
chmod 755 UploadToDrive.sh
最后,通过转到脚本属性来启用 GUI 内的执行: