我是新手来编写脚本并尝试学习一些东西。这是我尝试过的代码:
n=$1
shift
echo "Printing your name $n times"
count=1
for ((i=1;i<=$n;i++))
do
echo $@ -$i
count='expr[$count+1]'
done
echo 'New Model'
count=1
while ["$count" -le "$n"]
do
echo $@ -$i
count='expr[$count+1]'
done
for循环工作正常,但while循环不打印所需的结果。 for循环的结果应该是相同的。你能告诉我哪里出错了吗?谢谢。
答案 0 :(得分:3)
一个问题是括号周围需要空格,以便bash
知道它们是单独的单词。也就是说,改变这个:
while ["$count" -le "$n"]
到此:
while [ "$count" -le "$n" ]
另一个是:
count='expr[$count+1]'
实际上将变量count
设置为特定字符串expr[$count+1]
。你的意思是:
count=$((count+1))
将count
的值增加1。
答案 1 :(得分:2)
增加变量的另一种方法:
#!/bin/bash
count=1
#count=`expr $count + 1 `
#(( count++ ))
#count=$[$count + 1]
#count=$[count + 1]
#let count=count+1
#let count++
#count=$(( count + 1 ))
echo $count
答案 2 :(得分:1)
试试这个:
count=1
while [ "$count" -le "$n" ]
do
echo $@ -$i
count=`expr $count + 1`
done
while
条件中需要有空格。并且count
的增量需要反引号而不是单引号来执行命令并将其分配给变量。