this question is not the same as Does the shell support sets?
i know lots of script language support list structure, such as python, python, ruby, and javascript, so what about linux shell?
does shell support such syntax?
for i in list: do print i done
i would first to initialize a list, for example:
ListName = [ item1, item2, ..., itemn ]
then iterate over it
is that possible when programming shell scripts?
It supports lists, but not as a separate data structure (ignoring arrays for the moment).
The for
loop iterates over a list (in the generic sense) of white-space separated values, regardless of how that list is created, whether literally:
for i in 1 2 3; do echo "$i" done
or via parameter expansion:
listVar="1 2 3" for i in $listVar; do echo "$i" done
or command substitution:
for i in $(echo 1; echo 2; echo 3); do echo "$i" done
An array is just a special parameter which can contain a more structured list of value, where each element can itself contain whitespace. Compare the difference:
array=("item 1" "item 2" "item 3") for i in "${array[@]}"; do # The quotes are necessary here echo "$i" done list='"item 1" "item 2" "item 3"' for i in $list; do echo $i done for i in "$list"; do echo $i done for i in ${array[@]}; do echo $i done
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With