[英]Bash for loop syntax explanation
我正在使用Bash shell和Linux OS。 我有以下for循環:
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等。我希望腳本會在listVersion值每次更改時修改我的路徑。 但是誰能解釋for循環函數的精確度(尤其是[@]和[$ i]東西)。 我是Bash的新手,我只知道基本命令。 提前致謝!
如man bash
, ${#array[@]}
返回數組中的元素數。 同樣, ${array[$i]}
(更好地寫為${array[i]}
)返回${array[i]}
的$i
-th元素。
#! /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!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.