关于shell:Bash:如何从数字中提取数字

Bash: How to extract digits from a number

所以我给我的剧本介绍了一个数字,就像这样:

1
./script 795

我想从这个数字中提取每个数字,并检查它是否小于7。类似:

1
2
3
if [ 7 -le 7 ]
then
echo"The first digit is smaller than 7"

我想知道如何提取每个数字。


可以使用子字符串将第一个参数的第一个字符提取到脚本中:

1
2
3
if [ ${1:0:1} -lt 7 ]; then
    echo"The first digit is smaller than 7"
fi

要对每个字符执行此操作,则可以使用循环:

1
2
3
4
5
for (( i = 0; i < ${#1}; ++i )); do
    if [ ${1:$i:1} -lt 7 ]; then
        echo"Character $i is smaller than 7"
    fi
done

注意,我已经将EDOCX1(小于或等于)改为EDOCX1(小于)以使您的信息正确。