bash 新手 我试图编写简单的 while 循环:
let i = $1
while(i < 4); do
echo Hi
((i++))
done
运行此命令:$ bash bash_file.sh 0
给了我这个警告
bash_file.sh line 2: 4: no such file or directory
问题:什么时候变量必须是文件或目录?
如何解决?
编辑:如果我想循环 while i < $1 + $2,当 $1 和 $2 是数字时,如何写>
最佳答案
您需要一个算术语句(两个括号),而不是子 shell。 let
在这里是不必要的。
i=$1
while (( i < 4 )); do
...
done
while
的参数是一个 shell 命令。 ( i < 4 )
启动一个运行命令 i
的子 shell , 从名为 4
的文件中读取输入.在查找命令之前处理重定向,这解释了为什么你没有得到 i: command not found
错误。
您可以简单地替换 4
用你想使用的表达式:
while (( i < $1 + $2 )); do
关于bash - 如何在 bash 中使用 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32207604/