Как сохранить выходные данные команды, которая уже прошла через конвейер - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь сохранить первое слово второй строки вывода команды как переменную

Я попытался поместить все это в () с $ перед ним, это не работает

containerID= docker ps | awk 'END { print }' | { read first rest ; echo $first ; }

echo $containerID
echo $containerID

Я ожидал, что он дважды выплюнет переменную containerID, однако он выплевывает только один раз. при устранении неполадок я обнаружил, что «echo $ first» - это то, почему он выводит что-либо. Это означает, что он ничего не хранит в переменной containerID, почему?

1 Ответ

2 голосов
/ 26 июня 2019

Используйте $(...) для захвата вывода команды. Не ставьте пробел вокруг знака равенства.

containerID=$(docker ps | awk 'END { print }' | { read first rest ; echo $first ; })

Simpler:

containerID=$(docker ps | awk 'END {print $1}')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...