ТЛ;Д-Р
[Desktop Entry]Version=1.0Name=HelloExec=sh -c 'echo hello; $SHELL'Icon=utilities-terminalTerminal=trueType=Application
Как указано в спецификация ввода рабочего стола, Terminal=true сообщает программе запуска запустить ваш скрипт в окне терминала. Выбранный эмулятор терминала зависит от настроек приложений по умолчанию и среды рабочего стола. В GNOME это gnome-terminal, в KDE это Konsole. (Без DE, в обычном WM есть ошибка в xdg-open, и Terminal=true просто проигнорировал, см. выпуск)
Вам нужна эта строка, чтобы запустить ваш скрипт и запустить оболочку после него.
Exec=sh -c 'echo hello; $SHELL'
sh -c 'COMMAND' запустите двоичный файл "sh", найденный в $PATH, который выполняет КОМАНДУ (во многих системах, sh является символической ссылкой наbash, но для удобства переносимости предпочтительнее "sh")echo hello; $SHELL делает две вещи. Во-первых, он запускает echo helloа затем, после выполнения этой команды, запускает $SHELL.
Если вы будете нет добавьте какую-нибудь команду, которая ожидает вашего выхода, эмулятор терминала просто запустит вашу программу и выход.
P.S. Если вы просто хотите не закрывать свой терминал, вы можете сделать
Exec=sh -c 'echo hello; read'
Или
Exec=sh -c 'echo hello; sleep 5'
(чтение будет ждать, пока вы нажмете Enter, режим ожидания будет просто ждать 5 секунд)
P.P.S $SHELL вероятно, будет таким же, как в предыдущем разделе в /etc/passwd в соответствии с вашим пользователем.
$ man login
Значения для $HOME, $USER, $SHELL, $PATH, $LOGNAME и $MAIL задаются в соответствии с соответствующими полями при вводе пароля.