我必须执行这样的逻辑。 我有一个阵列。 shell中的表达式
[(first no + arrlen) - ( index +1 ) - ge 10 ]
我的代码是这样的,但它无法正常工作
#!/bin/bash
array=(4 5 6 7 8 9)
for i in ${array[@]}
do
echo $i
done
echo "${#array[@]}"
l=${#array[@]}
count=0
for (( i=0; i < ${#array[@]}; i++ ))
do
if [ ($(`expr $i + $l`) - $(`expr ${!array[@]} + 1`)) -ge 10 ]
then
count=`expr $count + 1`
else
echo
fi
done
答案 0 :(得分:1)
您的代码可能如下所示:
#!/bin/bash
array=(4 5 6 7 8 9)
for i in "${array[@]}"; do
echo "$i"
done
length=${#array[@]}
first=${array[0]}
count=0
for (( i=0; i < length; i++ )); do
if (( (first + length) - (i + 1) >= 10 )); then
((count++))
else
echo "something"
fi
done
expr
,请将(( ))
用于算术表达式"$i"
,"${array[@]}"
,... ${!array[@]}
扩展为数组的所有索引,而不是当前索引