0
私はBashシェル、Linux OSで作業しています。この前Bash for 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
、私はスクリプトに次のようにあります:私は、forループを下記の持っている
listModels=(model1
model2
model3)
listVersion=(MODEL1
MODEL2
MODEL3)
概念はMODEL1、MODEL2とMODEL3は、例えば、それのために、すべての今して変化し続けるですMODEL1.1、MODEL2.2となります。そして、私は、listVersion値が変更されるたびに、スクリプトが自分のパスを変更することを期待しています。しかし、どのようにしてforループ関数(特に[@]と[$ i]のもの)がどのくらい正確に説明できるのでしょうか。私はBashが初めてで、基本コマンドだけは知っています。前もって感謝します!
IIRC負のインデックスは、if文の中にはbash 4.2 – sjsam
式から許可されている '場合、[$ {!のVAR}]' 'を意味し、私は-th'要素が存在しないのですか? –
@Aditya:いいえ「間接」のために 'man bash'を検索します。 – choroba