to while循环bash中的许多参数

时间:2015-04-15 06:30:54

标签: bash while-loop arguments

我是bashscripting的新手,我找不到我的失败。

错误代码:

[: too many arguments

脚本:

i=5
while [ "${array[i]}" >= "256" ] -a [ "$i" > "0" ]; do
  array[$i]=0
  i=$(( $i - 1 ))
  array[$i]=$((${array[$i]}+1))
done

1 个答案:

答案 0 :(得分:2)

我猜你正试图做一些基础256携带。这是经过更正和简化的脚本,附加了一个示例:

#!/usr/bin/env bash
i=5
array=(254 255 255 255 255 256)
while [ ${array[i]} -ge 256 ] && [ $i -gt 0 ]; do
    array[i]=0
    (( i-- ))
    (( array[i]++ ))
done
echo ${array[@]}

输出:

255 0 0 0 0 0

老实说,我宁愿使用Bash的算术扩展而不是测试,所以[ ${array[i]} -ge 256 ] && [ $i -gt 0 ]可以改为

(( array[i] >= 256 && i > 0 ))