如何在bash中使用while循环

时间:2015-08-25 15:05:44

标签: bash

bash的新手 我试图写简单的while循环:

position: absolute

select * form table where column like '%a[|]b%'执行此操作 给了我这个警告 let i = $1 while(i < 4); do echo Hi ((i++)) done

问题:因为变量必须是文件或目录吗? 怎么解决这个问题?

编辑:如果我想循环而我&lt; $ 1 + $ 2,当$ 1和$ 2是数字时,如何写它&gt;

2 个答案:

答案 0 :(得分:5)

你需要一个算术语句(两个括号),而不是一个子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

答案 1 :(得分:4)

i=$1
while [ "$i" -le 4 ]
do
    echo $i
    i=$((i+1))
done

有关bash条件的更多信息: https://linuxacademy.com/blog/linux/conditions-in-bash-scripting-if-statements/