Рабочий стол или другой удобный, но безопасный способ выполнения нескольких операторов,

6

Я запускаю Gnome на Ubuntu 15.4.

Я хочу выполнить сразу два или несколько действий, но давайте попробуем с двумя:

  • sudo pm-suspend
  • gnome-screensaver-command -l

pm-suspend добавлено и разрешено выполнять без предоставления паролей, указав:

%sudo ALL = (root) NOPASSWD: /usr/sbin/pm-suspend'

документация - Exec и exec variables / actions не имеют ссылок, если имеется несколько Exec, но, к сожалению:

[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;

Я открыт для любых других предложений, как добиться заданной функциональности, кроме:

  • создайте скрипт и запустите его как sudo или аналогичный - я рассматриваю решения, основанные на этом небезопасном, не будем вникать в это дело
  • использовать переключатель питания gnome или другое, что называется (верхний правый угол) - у меня нет возможности приостановить

Кроме того, хотя я был бы рад получить то, что указано выше, я был бы еще более счастлив получить ответы, в которых говорится, как запускать несколько разных команд (без скрипта / компиляции собственных двоичных файлов и т. д.), в случае Я хотел бы объединить и автоматизировать некоторые другие действия.

    
задан JustMe 26.01.2016 в 10:55
источник

1 ответ

5

Чтобы запустить несколько команд в одной панели запуска, вам необходимо использовать следующий синтаксис:

Exec=/bin/bash -c "command_1 & command_2"

или, если второй должен дождаться завершения первого успешного завершения:

Exec=/bin/bash -c "command_1 && command_2"

или, как было предложено Bytecommander (спасибо за завершение!), если command_2 должно дождаться, пока command_1 закончит, но все равно запустится независимо от того, успешно ли command_1 заканчивается или нет:

Exec=/bin/bash -c "command_1 ; command_2"
    
ответ дан Jacob Vlijm 26.01.2016 в 11:02
источник