Каков наилучший способ вывода нескольких команд в одной консоли?
Я работаю над улучшением своей среды программирования, и теперь мне нужно выводить несколько команд (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
вернуть рабочие места на передний план.