在bash shell中更新循环内的变量

时间:2013-10-05 20:28:35

标签: bash shell

每次运行此脚本时,它都会打印0,然后以错误

中止
./hw4_1: line 6: syntax error near unexpected token `let'
./hw4_1: line 6: `  let COUNTER=0'

来源:

#!/bin/bash
COUNTER=0
echo $COUNTER
for i in {$@:2}do
  let COUNTER=0
  while [COUNTER -ne $1]; do
      echo "$i"
      let COUNTER+=1
    done;
done
exit

我已经尝试摆脱let并在COUNTER之前添加一个美元符号,但没有这些东西的组合工作......这个bash语法正在杀了我。 将'COUNTER = 0'更改为COUNTER = 0 只返回错误

./hw4_1: line 6: syntax error near unexpected token `let'  
./hw4_1: line 6: `  let COUNTER=0'

2 个答案:

答案 0 :(得分:2)

在for语句的值列表后面需要一个分号(或换行符):

for i in "${@:2}"; do

我还添加了引号,因为你可能想要它们(但可能不是)。

答案 1 :(得分:0)

无需使用let。只需使用:

COUNTER=0

您需要在其他地方使用$ COUNTER,例如:

while [ $COUNTER -ne $1 ]

并做增量:

COUNTER=$(($COUNTER + 1))