执行 shell 脚本

执行 shell 脚本

我有一个脚本:

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 内的执行:

文件属性

相关内容