Правильный поступок здесь должен настроить удар для запроса установку, как объяснено в ответе SamK. Я отвечу строго с точки зрения использования оболочки.
Во-первых, текст, который Вы пытаетесь захватить, находится на стандартной погрешности команды, но канал перенаправляет стандартный вывод, таким образом, необходимо перенаправить stderr к stdout.
htop 2>&1 | tail -1
Для использования вывода команды как часть командной строки используйте замену команды.
$(htop 2>&1 | tail -1)
Результат замены команды разделяется на слова, и каждое слово интерпретируется как подстановочный шаблон. Здесь это, оказывается, делает правильную вещь: это - командная строка со словами, разделенными пробелами, и нет никаких подстановочных символов.
Для оценки строки как команды оболочки использовать eval
. Для обработки результата команды как строка, а не список подстановочных шаблонов поместите его в двойные кавычки.
eval "$(htop 2>&1 | tail -1)"
Конечно, прежде, чем оценить команду оболочки как этот, удостоверьтесь, что это действительно, что Вы хотите выполнить.
Попробуйте это:
alias kill_stopped="kill \$(jobs -p)"
и убить рабочие места Runnings:
kill_stopped
Если нет никаких рабочих мест, вы получаете сообщение о использовании убийства.
Вы были близко, но вы должны использовать отдельные кавычки, не двойные кавычки:
kill_stopped='kill `jobs -p` '
Backticks расширяются внутри двойных кавычек, поэтому он работает задания -P
В то время вы определили псевдоним, а не Когда вы использовали это.