我是 Shell 脚本的新手,因此我对以 Shell 脚本形式使用 While 循环感到好奇。
我知道如何在 Java 中声明变量并使用 while 循环
int num = 0;
while(num <= 10)
{
System.out.println(num)
num = num + 1
}
但是我不知道如何在 Shell 脚本中的 while 循环中声明变量并使用它们。
答案1
有多种方法可以做到这一点,但最接近您的 Java 示例的 shell 脚本是这样的:
num=0
while test $num -le 10; do
echo $num
num=$((num+1))
done
实现相同目的的更“shell-ish”的方法是
printf '%s\n' {0..9}
但请注意,该{0..9}
构造是一种“bashism”,它在标准(POSIX)shell 中不起作用。
答案2
你会更乐意使用for
循环(根据你的例子)
for i in {0..10}; do
echo "$i"
done
如果你必须使用while
循环,考虑以下内容
i=0
while [[ $i -le 10 ]]; do
echo "$i"
i=$((i+=1))
done
答案3
还有一种简单的方法:
num=0
while (($num <= 10)); do
echo "$num"
((num++))
done
这在 bash 中可以工作,但在标准 POSIX shell 中则不行。
答案4
这个 Bash 脚本站点应该可以帮到你,一般来说你不需要在使用变量之前声明它们: