У меня есть скрипт bash с некоторыми пользовательскими данными. Таким образом, для бесперебойной работы необходимо запускать в эмуляторе терминала (чтобы пользователь мог вводить данные). Из-за этого я написал в первых строках скрипта следующую команду:
#!/bin/bash
#if the script is running in background it gets visable
if ! x-terminal-emulator
then
path=$(pwd) #read current path
me="$(basename "$(test -L "$0" && readlink "$0" || echo "$0")")" #read the name of the bash script
x-terminal-emulator -- .$path/$me
exit
fi
.
.
.
что он должен делать: Поэтому, когда он запускается в эмуляторе терминала, он должен игнорировать операторы и переходить к следующему шагу скрипта, но когда он работает в фоновом режиме, он должен открыть новый эмулятор терминала и запустить там скрипт.
что он делает: Но когда я запускаю его в эмуляторе терминала (1), он открывает новый эмулятор терминала (2), где ничего не происходит, и в исходном эмуляторе терминала (1) скрипт переходит к следующим шагам.
Это не тот путь. Вместо этого просто попросите пользователя запустить ваш скрипт в терминале, набрав команду. В качестве альтернативы, для легкого и видимого доступа пользователя, ваш скрипт должен быть запущен через файл .desktop. Это появится как пункт в меню приложения или может быть помещено на рабочий стол. Если вы включите строку «Terminal = true»,