Создайте файл .desktop, который откроется и выполните команду в терминале.

Я хотел бы знать, как написать команду Exec файла .desktop, чтобы открыть новый терминал и выполнить в нем скрипт оболочки. Скрипт оболочки работает и доступен всем пользователям. При запуске скрипта из терминала все работает, но не при попытке запустить скрипт из файла .desktop.

Вот некоторые комбинации, которые я уже пробовал:

Exec=gnome-terminal -x sh -c 'echo hello'
Exec=sh -c 'gnome-terminal echo hello'
Exec=sh -c 'echo hello'
Exec=echo hello

. Параметр терминала .desktop установлен в значение true.

38
задан 17.05.2020, 01:08

2 ответа

Содержание Вашего файла на рабочем столе должно быть похожим (см. , как создать .desktop файл с помощью текстового редактора ):

[Desktop Entry]
Version=1.0
Name=Test        
Comment=Test the terminal running a command inside it
Exec=gnome-terminal -e "bash -c 'echo hello;$SHELL'"
Icon=utilities-terminal
Terminal=false
Type=Application
Categories=Application;

Или:

[Desktop Entry]
Version=1.0
Name=Test        
Comment=Test the terminal running a command inside it
Exec=bash -c 'echo hello;$SHELL'
Icon=utilities-terminal
Terminal=true 
Type=Application
Categories=Application;

В первом случае, Terminal поле установлено на false (возможно, вопреки Вашим ожиданиям), и во втором случае установлен на true, но результатом является в обоих случаях то же.

45
ответ дан 17.05.2020, 01:09
  • 1
    @Thibaut Да, , конечно . – Lorenzo Rigamonti 17.05.2020, 01:09
  • 2
    Это работало на меня, однако я хочу запустить команду с sudo, тогда когда средство запуска использования создало его, открывает терминал, просящий - меня пароль. Как я запускаю команду и предотвращаю это поведение? – Simon O'Hanlon 17.05.2020, 01:10
  • 3
    Я думаю, что вопрос: как удостовериться, что терминал появляется так, чтобы терминал doesn' t исчезают так, чтобы мы могли ввести учетные данные – Simon O'Hanlon 17.05.2020, 01:10
  • 4
    @EliasAlves Немного поздно, но для кого-либо еще читающего это: Вы не можете ожидать к командам выполнения, которые требуют, чтобы полномочия пользователя root без обязанности аутентифицировали себя. (Если Вы явно не настраиваете свою систему, чтобы сделать это, которое обычно является плохо идея.) – MadScone 17.05.2020, 01:10
  • 5
    Первое решение работает на меня, таким образом, я придерживаюсь его. Вы знаете, почему должен быть $SHELL? – Simon O'Hanlon 17.05.2020, 01:11
!#/bin/bash

gnome-terminal -e YOUR_COMMANDS

Делают вышеупомянутый файл. Не забывайте к sudo chmod +x filename.sh

2
ответ дан 17.05.2020, 01:08
  • 1
    Проблема с этим решением, что терминал сразу исчезает, и пользователь не способен для ввода чего-то. – EngrStudent 17.05.2020, 01:09
  • 2
    я забыл то, чем это называют, но я, я думаю, существую опция продолжить терминал. Это могло бы быть hold – jsta 17.05.2020, 01:09

Теги

Похожие вопросы