[英]What's wrong with this shell script?
我已经编写了一个Bash脚本,它没有执行抛出“ num:not found”的命令
#!/bin/bash
echo "We will print Hello World a number of times."
num=0
while [ $num -lt 10 ]
do
echo "Hello World!"
num = $((num + 1))
done
谢谢
您需要删除对num
的第二次分配周围的空格。 请记住, var=
被识别为赋值,但是变量名和=
之间有空格,这意味着它将被解释为在PATH
上找到的命令。
#!/bin/bash
echo "We will print Hello World a number of times."
num=0
while [ $num -lt 10 ]
do
echo "Hello World!"
num=$((num + 1))
done
您需要将行更改为
num=$(($num + 1))
#!/bin/bash
num=0
while [ "$num" -lt "10" ]
do
echo "Hello World"
num=$((num+1))
done
echo "Finished"
其他答案是正确的,如果要分配,则不应在=
周围使用空格。 但是值得一提的是,该脚本可以这样重写:
#!/bin/bash
echo "We will print Hello World a number of times."
num=0
while (( num < 10 ))
do
echo "Hello World!"
((num++))
done
现在,阅读起来更加清晰了。 需要算术表达式吗? 然后使用正确的语法!
好的,但是现在我们可以注意到您正在执行与c样式的for-loop非常相似的操作。 这就是它的样子:
#!/bin/bash
echo "We will print Hello World a number of times."
for ((num=0; num < 10; num++))
do
echo "Hello World!"
done
更好!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.