Как изменить заголовок терминала, не меняя строку приглашения?

Итак, сначала синтаксис, который вы пытаетесь использовать, должен выглядеть следующим образом:

./ mc.x> test.out 2> & 1

Обратите внимание на дополнительные & в команде, которую вы пытались использовать. И да, таким образом вы не сможете отправить программу в фоновый режим.

TL; DR используйте nohup , чтобы выполнить то, что вы хотите:

nohup 2> & 1 ./mx.c &

Таким образом программа не повесит ваш терминал и отправит оба stdout и stderr в файл с именем nohup.out .

1
05.01.2017, 09:55
2 ответа

Я нашел способ добиться этого, создав псевдоним для компакт-диска. Я поместил следующий код в . profile файл, который помог

xcd() { cd $*; echo -ne "\033]0;$(basename $PWD)\007"; }
alias cd='xcd'

Большое спасибо Кусалананде за решение, которое я действительно искал:

cd() { command cd "$@"; echo -ne "\033]0;${PWD##*/}\007"; }
1
27.01.2020, 23:46

Согласно этому сайту: Как изменить заголовок xterm: примеры для разных оболочек

ksh предоставляет мало функций и расширений, поэтому у нас есть , чтобы вставить escape строка в приглашении для динамического обновления . В этом примере создается заголовок каталога username @ hostname: и приглашение ksh $.

 case $ TERM in 
xterm *) 
HOST = `hostname` 
PS1 = '^ [] 0; $ {USER} @ $ {HOST}: $ { PWD} ^ Gksh $ '
 ;; 
 *) 
PS1 =' ksh $ '
 ;; 
esac 
 

Однако $ PWD возвращает полный путь к каталогу. Мы можем удалить префикс $ HOME / из каталога с помощью конструкции $ {... ## ...}. Мы также можем использовать $ {... %% .. .} для усечения имени хоста:

 HOST = `hostname` 
HOST = $ {HOST %%. *} 
PS1 = '^ [] 0; $ {USER} @ $ { HOST}: $ {PWD ## $ {HOME} /} ^ Gksh $ '
 

Обратите внимание, что ^ [и ^ G в строке приглашения - это одиночные символы для ESC и BEL (можно ввести в emacs, используя Cq ESC и Cq Cg).

0
27.01.2020, 23:46

Теги

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