hug*_*eow 49 linux bash shell ash
我知道很多脚本语言支持列表结构,比如python,python,ruby和javascript,那么linux shell呢?
shell支持这样的语法吗?
for i in list:
do
print i
done
Run Code Online (Sandbox Code Playgroud)
我首先要初始化一个列表,例如:
ListName = [ item1, item2, ..., itemn ]
Run Code Online (Sandbox Code Playgroud)
然后迭代它
在编写shell脚本时可能吗?
che*_*ner 83
它支持列表,但不支持单独的数据结构(暂时忽略数组).
在for白色空间在列表循环迭代(一般意义上的)分隔值,不管如何被创建的列表,无论是从字面上:
for i in 1 2 3; do
echo "$i"
done
Run Code Online (Sandbox Code Playgroud)
或通过参数扩展:
listVar="1 2 3"
for i in $listVar; do
echo "$i"
done
Run Code Online (Sandbox Code Playgroud)
或命令替换:
for i in $(echo 1; echo 2; echo 3); do
echo "$i"
done
Run Code Online (Sandbox Code Playgroud)
数组只是一个特殊的参数,它可以包含一个更结构化的值列表,其中每个元素本身可以包含空格.比较差异:
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
Run Code Online (Sandbox Code Playgroud)
Don*_*sto 12
要列出清单,只需这样做
colors=(red orange white "light gray")
Run Code Online (Sandbox Code Playgroud)
技术上是一个数组,但 - 当然 - 它具有所有列表功能.
甚至python列表都是用数组实现的