Bash - [] 运算符(数组)的非数字参数

Bash - [] 运算符(数组)的非数字参数

我下面有一个小脚本;但是,我不太明白 for 循环和 if 语句。首先,我们看一下脚本:

listFieldNumbers ()
 { for ii in ${!field_number[@]}; 
do 
if [ $ii -lt $(( ${#field_number[*]}-1 )) ];
 then echo -n "$(( ${field_number[$ii]} + 1 )),"; 
else echo "$(( ${field_number[$ii]} + 1))"; 
fi; 
done; }

我不明白以下陈述是什么意思:

  1. field_number[@]
  2. {#field_number[*]}

答案1

field_number是一个数组,
${!field_number[@]}给出数组的索引列表
${#field_number[*]},是数组中元素的数量。

我建议您查找有关数组的 ba​​sh 教程。与他们合作有点棘手。

答案2

  1. 引用 field_number 数组中的所有元素
  2. 它是${#field_number[*]}field_number 元素的数量

只需阅读本教程:http://www.thegeekstuff.com/2010/06/bash-array-tutorial/

相关内容