Я думаю, что неправильно понимаю использование read
в fi sh для извлечения многострочного ввода. Вот мой базовый c скрипт:
~> ps -aux | grep python | awk '/anaconda2/ {print $2,$9}'
3113 10:11
6079 10:20
12266 14:06
14648 Apr01
23460 Apr01
23984 Apr01
25064 Apr01
27110 00:10
Я хочу прочитать это в одну переменную с read --list --line
, но вместо этого я просто получаю первую строку данных:
~>
ps -aux | grep python | awk '/anaconda2/ {print $2,$9}' | read -l --list --line pids_starts
~> echo $pids_starts
3113 10:11
Если я использую read -z
, я получаю все значения, но они разбиваются на отдельные переменные:
~> ps -aux | grep python | awk '/anaconda2/ {print $2,$9}' | read -l --list -z pids_starts
~> echo $pids_starts
3113 10:11 6079 10:20 12504 14:13 14648 Apr01 23460 Apr01 23984 Apr01 25064 Apr01 27110 00:10
~> count $pids_starts
16
~> echo $pids_starts[1]
3113
Как получить для каждой строки выходных данных отдельный элемент массива с read
? Я также считаю, что я неправильно понимаю, как AWK ограничивает вывод, но я не уверен.
Спасибо!