.desktop 文件似乎运行 .sh 文件可执行文件,但并未完成

.desktop 文件似乎运行 .sh 文件可执行文件,但并未完成

我希望我已经尽职尽责地搜索了以前的帖子。我是 ubuntu (14.04) 的新手,仍在学习。我找不到之前问过的这个问题。

我创建了一个 .sh 文件 (/home/Desktop/mountServer.sh),并设置了 properties->Execute 以允许将文件作为程序执行。如果我使用 手动从终端运行此 .sh cd Desktop/./mountServer.sh它运行正常。当我运行 .desktop 文件“Mount Server.desktop”时,它会按照指示打开终端并提示我输入密码。但之后什么也没发生。它没有挂载我的磁盘。没有错误消息。

mountServer.desktop 代码:

[Desktop Entry]
Name=Mount Server
Comment=Mounts the Server 1.5 from Apple Airport Extreme
Exec=sudo /home/Desktop/mountServer.sh
Icon=/paht/to/icon.png
Terminal=true
Type=Application

mountServer.sh代码:

sudo mount -t cifs "//10.0.1.1/The Server 1.5" -o username=myusername,password=pwhere,sec=ntlm ~/capsule

答案1

这行代码好像有错,你的桌面文件夹不在/home

Exec=sudo /home/Desktop/mountServer.sh

并且不需要使用sudo两次,一次在脚本中,一次在桌面文件中。

使用

Exec=/home/your_username/Desktop/mountServer.sh

相反,your_username用你的用户名替换( 的输出echo $USER

你应该使用

$HOME/capsule

代替

~/capsule

在你的脚本中。


对你来说最好的解决方案是gksu通过安装

sudo apt-get install gksu

像这样的桌面文件,your_username用你的用户名替换(输出echo $USER

[Desktop Entry]
Name=Mount Server
Comment=Mounts the Server 1.5 from Apple Airport Extreme
Exec=gksu /home/your_username/Desktop/mountServer.sh
Icon=/paht/to/icon.png
Terminal=false
Type=Application

像这样的脚本

#!/usr/bin/env bash
mount -t cifs "//10.0.1.1/The Server 1.5" -o username=myusername,password=pwhere,sec=ntlm "$HOME"/capsule

使用此解决方案,您将获得图形密码提示,无需不必要的终端,如果您想直接在终端中启动脚本,您可以使用

sudo ~/Desktop/mountServer.sh

相关内容