桌面输入,或其他方便但安全的方式来执行多个语句,

Jus*_*tMe 6 gnome command-line suspend lock-screen .desktop

我在 Ubuntu 15.4 上运行 Gnome。

我想一次执行两个或多个动作,但让我们尝试两个:

  • 须藤下午暂停
  • gnome 屏幕保护程序命令 -l

添加了 pm-suspend 并允许在不提供密码的情况下通过指定以下内容执行:

%sudo ALL = (root) NOPASSWD: /usr/sbin/pm-suspend`
Run Code Online (Sandbox Code Playgroud)

文档 -如果可能有多个 Exec ,Execexec 变量/动作没有引用,但不幸的是:

[Desktop Entry]
_Name=Sleep and logout
_GenericName=Sleep and logout

#Exec=gnome-screensaver-command -l & sudo pm-suspend # does not work

#Exec=gnome-screensaver-command -l
#Exec=sudo pm-suspend                                # does not work either

Terminal=false
Type=Application
Categories=System;Security;
Run Code Online (Sandbox Code Playgroud)

我对如何实现给定功能的任何其他建议持开放态度,除了:

  • 制作一个脚本并以 sudo 或类似的方式运行它 - 我考虑基于这种不安全的解决方案,让我们不要深入研究这个问题
  • 使用 gnome 电源开关或任何所谓的(右上角)-我的没有暂停选项

另外,虽然我很高兴拥有上述内容,但我更乐意得到一个答案,说明如何启动多个不同的命令(无需脚本/编译自己的二进制文件等),以防万一喜欢捆绑和自动化一些其他操作。

Jac*_*ijm 5

要在一个启动器中运行多个命令,您需要使用以下语法:

Exec=/bin/bash -c "command_1 & command_2"
Run Code Online (Sandbox Code Playgroud)

或者,如果第二个应该等待第一个成功终止:

Exec=/bin/bash -c "command_1 && command_2"
Run Code Online (Sandbox Code Playgroud)

或者,正如 Bytecommander 所建议的(感谢您的完成!),如果command_2应该等待command_1完成,但不管是否command_1成功完成,都运行:

Exec=/bin/bash -c "command_1 ; command_2"
Run Code Online (Sandbox Code Playgroud)