作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
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/
我是一名优秀的程序员,十分优秀!