Скрипт Bash, если условие не работает

У меня есть скрипт 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) скрипт переходит к следующим шагам.

0
задан 12 June 2020 в 14:31

1 ответ

Это не тот путь. Вместо этого просто попросите пользователя запустить ваш скрипт в терминале, набрав команду. В качестве альтернативы, для легкого и видимого доступа пользователя, ваш скрипт должен быть запущен через файл .desktop. Это появится как пункт в меню приложения или может быть помещено на рабочий стол. Если вы включите строку «Terminal = true»,

0
ответ дан 19 June 2020 в 21:25

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

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