Каков наилучший способ вывода нескольких команд в одной консоли?

Я работаю над улучшением своей среды программирования, и теперь мне нужно выводить несколько команд (coffeescript/sass compilation и unit-тесты) в одну консоль. Это может быть достигнуто объединением команд с &:

karma start & coffee -o js/app -cw coffee/ & sass --watch sass/:css/

но когда я хочу закончить работу, закрыть их и нажать ctrl+c они все еще будут работать в фоновом режиме, и мне придется убить каждого из них вручную. Как я могу это исправить и иметь возможность закрыть все эти команды одновременно?

В настоящее время я могу думать только о выполнении задачи grunt, которая будет запускать несколько команд, но использование grunt кажется излишним для такой задачи. Есть ли более простые / альтернативные способы?

4 ответа

Решение

(Примечание: вы можете отобразить только одну программу / задачу одновременно. Также некоторые программы, такие как apt-get не работают должным образом таким образом.)


Сначала добавьте & символ до конца строки, поэтому строка выглядит так:

karma start & coffee -o js/app -cw coffee/ & sass --watch sass/:css/ &

Это ставит последнюю программу в фоновом режиме.


Затем введите jobs перечислить программы. Затем вы получите вывод, который несколько напоминает это:

karma start [1]
coffee -o js/app -cw coffee/ [2]
sass --watch sass/:css/ [3]

Чтобы вывести программу на передний план, введите fg затем номер программы. Например, чтобы принести karma start на передний план введите fg 1, Чтобы вернуть его на задний план, нажмите Ctrl+Z. Повторите по мере необходимости.

Просто убейте терминал... Это убьет все команды, которые он выполняет, если вы не примете специальные меры предосторожности, такие как dtach...

& не объединяет команды. Это начинается один за другим в фоновом режиме. Если нет необходимости запускать команды в фоновом режиме, просто используйте ; вместо &,

Использование job перечислить свою команду, у вас будет что-то вроде этого

karma start [1]
coffee -o js/app -cw coffee/ [2]

использование fg 1 или же fg 2 вернуть рабочие места на передний план.

Другие вопросы по тегам