Файл на рабочем столе не может запустить скрипт в терминале

Я хочу сделать кнопку на своем lxpanel для запуска программы, которая распечатывает Hello World! во всплывающем окне lxterminal, таким образом, я использую технику, которую я успешно реализовал прежде в Debian 7, который является:

  1. gedit /bin/hello.sh (содержание ниже):

    #!/bin/bash
    echo 'Hello World!';
    
  2. gedit /usr/share/applications/hello1.desktop (ниже):

    [Desktop Entry]
    Version=1.0
    Type=Application
    Name=Hello1
    Comment=Test the terminal running a command inside it
    Exec=lxterminal -e "/bin/hello.sh"
    StartupNotify=true
    Icon=utilities-terminal
    Terminal=true
    Categories=Utility;
    
  3. В последний раз я chown и chmod оба из вышеупомянутых файлов как указано ниже:

    -rwxr-xr-x 1 a adm 230  1月  1 13:02 /usr/share/applications/hello1.desktop*
    -rwxr-xr-x 1 a adm 240  1月  1 12:57 /usr/share/applications/hello1.desktop~*
    -rwxr-xr-x 1 a adm 194  1月  1 12:04 /usr/share/applications/hello.desktop*
    -rwxr-xr-x 1 a adm 195  1月  1 12:03 /usr/share/applications/hello.desktop~*
    -rwxrwxr-x 1 a adm  87  1月  1 12:35 /usr/share/applications//bin/hello.sh*
    -rwxrwxr-x 1 a a    87  1月  1    12:25 /usr/share/applications//bin/hello.sh~*
    -rwxrwxr-x 1 a adm 134 12月 13 09:56 /usr/share/applications//bin/hello_world.sh*
    

К сожалению независимо от того, что я делаю, hello1.desktop файл только может открыть пробел lxterminal, и нет никакого вывода.

Я выполняю Lubuntu 14.04 и следовал следующим учебным руководствам для соединения файла на рабочем столе с *.sh программой сценария:

Я также сделал следующие изменения к hello1.desktop:

  • строка 10 (длятся строку) - я также попробовал ее без точки с запятой.
  • строка 9 ("Терминальная" строка) - попробованная "ложь"
  • строка 6 ("Исполнительная" строка) - попробовала их:

    Exec=sh /bin/hello.sh;
    Exec=lxterminal -e “/bin/hello.sh”
    Exec=/bin/hello.sh
    Exec=sh -c /bin/hello.sh
    Exec=lxterminal -x sh -c 'echo hello'
    Exec=sh -c 'gnome-terminal echo hello'
    Exec=sh -c 'echo hello'
    Exec=sh /bin/hello.sh
    Exec=sh -c /bin/hello.sh
    

Но в конце все - то же (кроме тех случаев, когда Terminal=false на строке 9 нет никакого терминала, очевидно).

Я вижу hello1 под Системой-> высовываются Аксессуары, но когда я нажимаю на него все еще просто пустой экран. В debian 7.5 LXDE, хрипящем, это действительно легко сделать успешно, но что не так в Lubuntu 14.04 для создания этого настолько более трудным?

Andrew

2
задан 12 February 2019 в 23:30

1 ответ

Мне удалось копировать Вашу проблему и иметь решение.

, Поскольку Ваше исследование сказало Вам, Ваша исходная проблема имела:

Terminal=true

вместе с:

Exec=lxterminal -e /bin/hello.sh

единственная проблема, это, когда Вы используете:

Terminal=false

терминальные завершения после выполнения сценария, хотя это действительно на самом деле выполняет Ваш сценарий. Поскольку Ваш сценарий производит так мало вывода, не по-человечески возможно видеть, что это происходит так, это походит на "высовывающийся пустой экран".

, Насколько я вижу (от man lxterminal и от Google), нет никакого особенного метода попросить, чтобы lxterminal остался открытым после того, как это выполнило сценарий, таким образом, необходимо изменить сценарий удара (т.е. hello.sh) сам.

, Например, Вы могли добавить любое из следующего до конца Вашего сценария.

  1. echo "Press [ENTER] to exit" && read

    • терминал будет ожидать пользователя для удара Входят . (На самом деле для ввода чего-либо сопровождаемого Входят .)
  2. /bin/bash

    • терминал останется открытым.

Для обсуждения общей проблемы того, чтобы мешать оболочке закрыться после выполнения команды, включая информацию о других эмуляторах терминала, см.: , Как выполнить сценарий, не закрывая терминал?

По тому, как точка с запятой в конце Файла на рабочем столе ничего не делает, таким образом, Вы могли бы также удалить его.

Сводка : единственное изменение, которое необходимо внести в исходный файл на рабочем столе, Terminal=false, но необходимо добавить строку до конца сценария удара, если Вы хотите видеть, что сценарий работал.

1
ответ дан 2 December 2019 в 05:09

Другие вопросы по тегам:

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