bash循环语法解释



我在Bash shell,Linux OS工作。我有以下循环:

for ((i=0;i<${#listModels[@]};i++))
do
var=${listVersion[$i]}
if [ ${!var} ]
then
    export MY_LIBRARY_PATH=$MY_LIBRARY_PATH:$ROOT_PATH/${listModels[$i]}/${listModels[$i]}_${!var}
else
    echo ">>>> No ${listModels[$i]} version! <<<<"
fi
done

在此之前,我在脚本中有以下内容:

listModels=(model1
model2
model3)
listVersion=(MODEL1
MODEL2
MODEL3)
概念是MODEL1,MODEL2

和MODEL3不时地变化,例如它变成了MODEL1.1,MODEL2.2,..我希望脚本每次列表版本值更改时都会修改我的路径。但是谁能解释一下 for 循环函数(尤其是 [@] 和 [$i] 的东西)的确切含义。我是Bash的新手,我只知道基本的命令。提前感谢!

man bash中所述,${#array[@]}返回数组中元素的数量。类似地,${array[$i]}(最好写为 ${array[i]})返回数组的第 $i 个元素。

#! /bin/bash
array=( a b c )
echo Size: ${#array[@]}
echo First: ${array[0]}
echo Second: ${array[1]}
echo Last: ${array[-1]}  # Negative index counts from the right!

相关内容

  • 没有找到相关文章

最新更新