rue*_*sel 5 command-line bash .desktop 14.04
我只是想找到一种在打开应用程序(Firefox)时运行额外命令的方法,但我失败得很惨......
原来的问题在这里。
我尝试在应用程序命令之后添加我的命令,如下行所示:
Exec=firefox %u & /bin/monitor_process.sh firefox
Run Code Online (Sandbox Code Playgroud)
但这会导致monitor_process.shFF 打开,显示“打开文件...”对话框。
我尝试过; & &&但没有成功...
那么,知道如何处理 .desktop 文件中的多个命令吗?
另外,塞尔格说:
那也行不通。Exec= 必须只有一个语句,不;被允许。
桌面文件不在 shell 中运行;这意味着您无法firefox %u & /bin/monitor_process.sh firefox直接运行复杂的命令;在这种情况下,该&部分的所有内容都会失败,该部分不会被解释为“背景firefox %u”,而是字面意思为,它&作为参数传递给firefox %u和/bin/monitor_process.sh。firefox
要修复该问题,请firefox %u & /bin/monitor_process.sh firefox在至少支持作业控制的 shell 中运行(简单dash有效):
[Desktop Entry]
Name=foo
Exec=sh -c 'firefox %u & /bin/monitor_process.sh firefox'
Type=Application
Run Code Online (Sandbox Code Playgroud)
您可以为您的文件尝试此 Exec 行.desktop:
Exec= bash -c "firefox && /bin/monitor_process.sh firefox"
Run Code Online (Sandbox Code Playgroud)
bash将打开一个 shell 并正确解释 &&。