Utknąłem na małym problemie. Mam polecenie, które potoki wyprowadzają do awk, ale chcę przechwytywać dane wyjściowe do tablicy jeden po drugim.Bash przechwytujący wyjście awk do tablicy
Mój przykład:
myarr=$(ps -u kdride | awk '{ print $1 }')
Ale przechwytywania całe wyjście w jeden gigantyczny ciąg oddzielonych przecinkami:
output: PID 3856 5339 6483 10448 15313 15314 15315 15316 22348 29589 29593 32657 1
Próbowałem również:
IFS=","
myarr=$(ps -u kdride | awk '{ print $1"," }')
But the output is: PID, 3856, 5339, 6483, 10448, 15293, 15294, 15295, 15296, 22348, 29589, 29593, 32657,
1
chcę aby móc przechwycić każdy pojedynczy pid we własny element tablicy. Ustawienie IFS = '\n'
nic nie daje i zachowuje moje oryginalne wyjście. Jaką zmianę muszę zrobić, aby to zadziałało?
Możesz całkowicie pominąć komendę 'awk' używając' myarr = ($ (ps -u kdride -o pid)) '. (Zwróć uwagę na dodatkowe nawiasy, jak wskazano w odpowiedzi Pawła). – chepner