Bash script - определить, запущен ли скрипт в терминальной консоли или графическом интерфейсе - PullRequest
0 голосов
/ 28 февраля 2019

Как узнать, запущен ли скрипт с помощью терминальной консоли или без него, например, в графическом файле .desktop?

Я просмотрел вывод env, и некоторые переменные выглядят перспективными для проверки, например, test $СРОК ВАР.Но я хочу знать наверняка и совместимый / переносимый способ сделать это.

Это необходимо для скрипта, который будет иметь два поведения для пользовательского ввода, откат к чтению терминала или ввод графического интерфейса.

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Или:

 $ [ -t 0 ] &&  echo "in a terminal" || echo "something else"
 in a terminal 
0 голосов
/ 28 февраля 2019
if [ -t 0 ]; then echo "in a terminal"; fi

Это проверяет дескриптор файла 0, который является стандартным.Если вы запускаете свой скрипт как графический интерфейс, этот тест должен быть ложным.

Автор: glenn jackman

Это не будет работать, если скриптзапускается из терминала, но с перенаправленным вводом.- Гордон Дэвиссон

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...