Итак, сначала синтаксис, который вы пытаетесь использовать, должен выглядеть следующим образом:
./ mc.x> test.out 2> & 1
Обратите внимание на дополнительные &
в команде, которую вы пытались использовать. И да, таким образом вы не сможете отправить программу в фоновый режим.
TL; DR используйте nohup
, чтобы выполнить то, что вы хотите:
nohup 2> & 1 ./mx.c &
Таким образом программа не повесит ваш терминал и отправит оба stdout
и stderr
в файл с именем nohup.out
.
Я нашел способ добиться этого, создав псевдоним для компакт-диска.
Я поместил следующий код в . profile
файл, который помог
xcd() { cd $*; echo -ne "\033]0;$(basename $PWD)\007"; }
alias cd='xcd'
Большое спасибо Кусалананде за решение, которое я действительно искал:
cd() { command cd "$@"; echo -ne "\033]0;${PWD##*/}\007"; }
Согласно этому сайту: Как изменить заголовок 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).