Is there any way to pipe the output of a command which lists a bunch of numbers (each number in a separate line) and initialize a bash array with those numbers?
Details: This lists 3 changelist numbers which have been submitted in the following date range. The output is then piped to cut
to filter it further to get just the changelist numbers.
p4 changes -m 3 -u edk -s submitted @2009/05/01,@now | cut -d ' ' -f 2
Eg :
422311
543210
444000
How is it possible to store this list in a bash array?
You can execute the command under ticks and set the Array like,
ARRAY=(`command`)
Alternatively, you can save the output of the command to a file and cat it similarly,
command > file.txt
ARRAY=(`cat file.txt`)
Or, simply one of the following forms suggested in the comments below,
ARRAY=(`< file.txt`)
ARRAY=($(<file.txt))
Quite similar to #4 but looks a bit better for me. :)
declare -a a
readarray -t a <<< $(command)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.