Итак, я собираюсь написать скрипт, и мне нужно его автоматически открыть xterm, когда я дважды щелкнул его (аналогично BAT в Windows). Он должен работать на любом рабочем столе, включая xterm. Так, например, он выполнит проверку, если он уже запущен в xterm, тогда, если он не будет снова открываться в xterm, и если это сценарий, он продолжит свой процесс. Извините, если это уже было задано, но я не смог найти что-либо для жизни.Linux: как автооткрыть терминал при запуске скрипта
ответ
Вы можете сделать это следующим образом:
xterm -e program [ arguments ... ]
От человека странице Linux ...
Этот параметр определяет программу (и ее аргументы командной строки) в запустить в окно xterm. Он также устанавливает заголовок окна и значок как базовое имя исполняемой программы, если в командной строке не указаны ни -T , либо -n. Это должна быть последняя опция в командной строке .
Принимая во внимание, что для других сценариев можно установить переменные среды (в том числе выполненные по неправильным причинам), вы можете проверить одну из переменных среды, установленных xterm. Например (см manual):
XTERM_VERSION установлен в строке отображается с помощью опции -версия. То есть обычно является идентификатором библиотек X Window, используемых для построения xterm, а затем в скобках указывается номер патча xterm. Патч номер также является частью ответа на вторичное устройство. Контрольная последовательность атрибутов (DA) (см. Xterm Control Sequences).
Эта переменная была добавлена в 2005 году (patch #202), поэтому она должна быть доступна в любой системе, к которой у вас есть доступ.
В сценарии, вы можете сделать эту проверку в одной строке, например,
#!/bin/sh
test -z "$XTERM_VERSION" && exec xterm -e $0 $*
view $*
Проверяется, если данная переменная установлена, и если нет, то он передает управление XTerm проходящей информацию, необходимую для запуска сценарий с самого начала.
Это отлично работает, спасибо чувак. – QuaDECH
Фактически, это не проверяется и не возобновляется в соответствии с запросом. Однако, скорее всего, не существует более сжатого метода для этого. –
@ThomasDickey Все в порядке, я нашел для него другой код в Интернете. – QuaDECH