Существует ли простой способ остановить и переиздать команду?

В целом:

program >/dev/null 2>&1

вызовет вывод (STDOUT) из program кому: /dev/null и перенаправления STDERR кому: STDOUT. Так попытка:

/usr/bin/emacsclient -ca emacs $1 >/dev/null 2>&1
2
26.05.2012, 02:50
2 ответа

выполните его в цикле:

while : ; do node app.js ; done

так каждый раз, когда Вы поразите CTRL-C, он закончит текущий узел и запустит сам следующий.

Для окончания цикла просто содержат CTRL-C некоторое время или уничтожают от другой оболочки или даже закрыли сеанс оболочки.

3
27.01.2020, 22:07
  • 1
    Это только работает, если SIGINT захватывается оболочкой, которая не имеет место по умолчанию.Попробуйте. –  James Youngman 26.05.2012, 01:55
  • 2
    я много раз пробовал его. Это не работает с sleep или echo, но это действительно работает с чем-то как ssh -N и node. –  rush 26.05.2012, 02:03

Много серверов принимают SIGHUP как сигнал перезагрузить их конфигурацию. Но если это не будет работать на Вас, простая альтернатива должна использовать Управление-O вместо возврата. Это выполняет эту команду и затем выбирает следующую команду из истории. Попробуйте его как это:

echo hello
echo world
[cursor-up twice]
[now press control-O until you get bored]

Работы над Bash, я забываю, насколько широко распространенный эта функция.

В этом случае для выполнения node неоднократно Вы просто чередовали бы Ctrl-C и Управление-O.

0
27.01.2020, 22:07
  • 1
    Это не будет работать, вызывать u, должен остановить команду сначала (node не заканчивает себя как echo в Вашем примере). –  rush 26.05.2012, 01:58
  • 2
    Вот почему, инструкции выше упоминают, что необходимо нажать Control-C. –  James Youngman 26.05.2012, 16:50

Теги

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