简体   繁体   中英

Using array from an output file in bash shell

am in a need of using an array to set the variable value for further manipulations from the output file.

scenario:

> 1. fetch the list from database 
> 2. trim the column using sed to a file named x.txt (got specific value as that is required)
> 3. this file x.txt has the below output as
10000 
20000 
30000
> 4. I need to set a variable and assign the above values to it.  
A=10000 
B=20000 
C=30000
> 5. I can invoke this variable A,B,C for further manipulations.

Please let me know how to define an array assigning to its variable from the output file.

Thanks.

I am not a big proponent of using arrays in bash (if your code is complex enough to need an array, it's complex enough to need a more robust language), but you can do:

$ unset a
$ unset i
$ declare -a a
$ while read line; do a[$((i++))]="$line"; done < x.txt

(I've left the interactive prompt in place. Remove the leading $ if you want to put this in a script.)

In bash (starting from version 4.x) and you can use the mapfile command:

mapfile -t myArray < file.txt

see https://stackoverflow.com/a/30988704/10622916

or another answer for older bash versions: https://stackoverflow.com/a/46225812/10622916

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM