bash中的while循环
我不熟悉bash脚本,并尝试学习一些东西。以下是我尝试过的代码:bash中的while循环,bash,while-loop,Bash,While Loop,我不熟悉bash脚本,并尝试学习一些东西。以下是我尝试过的代码: 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
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
n=$1
转移
echo“打印您的姓名$n次”
计数=1
对于((i=1;i一个问题是在括号中需要空格,以便bash
知道它们是单独的单词。也就是说,更改此选项:
while ["$count" -le "$n"]
为此:
while [ "$count" -le "$n" ]
另一个原因是:
count='expr[$count+1]'
实际上,将变量count
设置为特定字符串expr[$count+1]
。您的意思似乎是:
count=$((count+1))
这会将count
的值增加1。一个问题是括号周围需要空格,以便bash
知道它们是单独的单词。也就是说,更改此选项:
while ["$count" -le "$n"]
为此:
while [ "$count" -le "$n" ]
另一个原因是:
count='expr[$count+1]'
实际上,将变量count
设置为特定字符串expr[$count+1]
。您的意思似乎是:
count=$((count+1))
这会将计数的值增加1。尝试以下操作:
count=1
while [ "$count" -le "$n" ]
do
echo $@ -$i
count=`expr $count + 1`
done
while
条件中需要有一个空格。count
的增量需要后引号,而不是一个引号,以执行命令并将其分配给变量。尝试以下操作:
count=1
while [ "$count" -le "$n" ]
do
echo $@ -$i
count=`expr $count + 1`
done
while
条件中需要有一个空格。count
的增量需要后引号,而不是单个引号,以执行命令并将其分配给变量。增量变量的另一种方法:
#!/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
增加变量的另一种方法:
#!/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
[
实际上是指向/bin/test
的链接(好吧,在bash
中,它是一个内置的,但它就是从那里来的)。因此[
是一个词(就像ls
),这就是它需要空间的原因。@BenJackson:我认为即使没有这个,也需要空间;请注意[[
也需要空格,尽管它在其他方面很神奇。嘿,非常感谢你提供的信息,但我不明白的是count='expr[$count+1]'在for循环中工作,但在while循环中不工作,你能告诉我为什么吗?谢谢。@surpavan:它在for
-循环中不工作;但是for
-循环中没有任何内容使用count
的值,因此它在那里不工作并不重要。[
实际上是指向/bin/test
的链接(好的,在bash
中,它是一个内置的,但它就是从这里来的。)因此[
是一个词(就像ls
),这就是它需要空间的原因。@BenJackson:我认为即使没有空间,也需要空间;注意[[
也需要空格,尽管它在其他方面很神奇。嘿,非常感谢你提供的信息,但我不明白的是count='expr[$count+1]'在for循环中工作,但在while循环中不工作,你能告诉我为什么吗?谢谢。@surpavan:它在for
-循环中不工作;但是for
-循环中没有任何东西使用count
的值,因此它在那里不工作并不重要。