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