Использовать вывод команды bash (с pipe) в качестве параметра для другой команды

Я ищу способ использовать выходные данные команды (скажем, command1) в качестве аргумента для другой команды (скажем, command2).

Я столкнулся с этой проблемой при попыткеgrep выходwho команда, но с использованием шаблона, заданного другим набором команд (на самом делеtty по трубопроводуsed).

Контекст:

Еслиtty дисплеи:

/dev/pts/5

А такжеwho дисплеи:

root     pts/4        2012-01-15 16:01 (xxxx)
root     pts/5        2012-02-25 10:02 (yyyy)
root     pts/2        2012-03-09 12:03 (zzzz)
Цель:

Я хочу только строки (ы) относительно "PTS / 5", поэтому я пайпtty вsed следующее:

$ tty | sed 's/\/dev\///'
pts/5
Контрольная работа:

Попытка следующей команды не работает:

$ who | grep $(echo $(tty) | sed 's/\/dev\///')"
Возможное решение:

Я обнаружил, что следующее прекрасно работает:

$ eval "who | grep $(echo $(tty) | sed 's/\/dev\///')"

Но я уверен, что использованиеeval можно было бы избежать.

В качестве последнего побочного узла: я заметил, что аргумент "-m"who дает мне именно то, что я хочу (получить только строкуwho это связано с текущим пользователем). Но мне все еще интересно, как я мог бы заставить эту комбинацию каналов и командного размещения работать ...

Ответы на вопрос(4)

Ваш ответ на вопрос