2015-06-27 9 views
3

Как запустить команду при запуске xterm, то есть при запуске терминала xterm команда уже выполнена?Как запустить команду при запуске xterm?

я редактировал .bashrc файл, чтобы добавить эту строку:

Xterm "LS"

Но это не работает.

Пожалуйста, предложите, что я должен сделать, чтобы добиться этого.

Спасибо.

ответ

1

Согласно bash руководства, ~/.bashrc используется для интерактивных оболочек. xterm запускает оболочку, поэтому, возможно, ваш «не работает» вызывает цепочку xterm.

Программа xterm устанавливает эти environment variables которые полезны для скриптинга: XTERM_VERSION и XTERM_SHELL. В файле ~/.bashrc, вы можете использовать бывший для запуска xterm -ls только один раз:

if [[ -z "$XTERM_VERSION" ]] 
then 
    xterm -hold -e ls & 
fi 

, который, кажется, что вы просите:

  • было бы запустить Xterm, если не бежать от существующий xterm
  • предотвращает закрытие xterm при выполнении ls.

Более полезным кажущийся способ, показывающий ls при запуске оболочки будет работать ls в каждой оболочке, как он запускается (для этого случая, вам не нужно запускать отдельный xterm). Опять же, вы можете использовать переменные окружения, чтобы сделать это раз (в случае, если вы запускаете bash сделать подоболочку):

if [[ -z "$XTERM_ONCE" ]] 
then 
    export XTERM_ONCE=$(date) 
    ls 
fi 
+0

xterm установил это с 2005 года - см. (Changelog) [http://invisible-island.net/xterm/xterm.log.html#xterm_202] –

0

Я использую это:

-e /bin/bash -login 

-e команда [аргументы]

Выполните команду с ее аргументами командной строки в окне rxvt; также устанавливает заголовок окна и имя значка как базовое имя программы , выполняемой, если в командной строке не указаны ни -title (-T), ни -n. Если этот параметр используется, он должен быть последним в командной строке . Если параметр -e отсутствует, по умолчанию используется программа , указанная переменной окружения SHELL, или, в противном случае, sh (1).

http://linux.die.net/man/1/rxvt

+0

где вы вводите этот -e/bin/Баш -login? Я имею в виду, в каком файле? – user189942

+0

Это, по-видимому, аргументы командной строки для вызова 'xterm' или' rxvt'. Если вы не запускаете 'xterm' из командной строки (в этом случае вы уже запускаете экземпляр' xterm' во многих средах!), Это кажется менее полезным. – tripleee

 Смежные вопросы

  • Нет связанных вопросов^_^