我正在研究shell scripting并且不了解-eq和==,-lt和<,-gt和>之间的区别,等等。
我正在尝试从0到9编写一个while循环printing
num=0
while [ $num -lt 10 ]; do
echo "$num"
((num++))
done
这段代码有效但当我将-lt更改为<时,它表示没有这样的文件或目录。
num=0
while [ $num < 10 ]; do
echo "$num"
((num++))
done
<这里有什么问题?我是否总是在while循环中使用go for -lt?循环时有一般的方法吗?感谢您是否可以提供帮助。
分析解答
在语法方面,Shell scripting总是不同的。
所以当你说-lt
时它意味着小于(<)。所以当你编写你的代码时它完全正常
while [ $num -lt 10 ]; do
echo "$num"
((num++))
done
但是当你在shell脚本中使用<
时,它用于从文件或目录中读取输入。所以在这种情况下,它将搜索$num
变量中的文件名
In simple words
-lt
小于用于条件检查的-lt
<
用于从文件中读取输入。