我是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
答案 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 ))