我试图打印小于第一个数字的数字
./8d 100 5 8 6
所以我的结果应该是5 8 6
#!/bin/bash
for i in $*
do
if [[ $1 > $i ]]; then
echo "Num " $i
fi
done
但我没有得到任何结果。我做错了什么?
答案 0 :(得分:2)
您的代码存在的问题是它正在进行 lexical 比较,而不是数字。 10
和1
在词汇上都小于100
,但您提供的数字较大。
我这样的代码,我觉得它更清楚
#!/bin/bash
base=$1
shift
for n do
(( base > n )) && echo $n
done
和
$ smaller 100 5 8 1234 6 100
5
8
6
答案 1 :(得分:1)