3 formas de determinar si una variable es un número en un script de shell

Este artículo presenta principalmente tres métodos para determinar si una variable es un número en un script de Shell. Este artículo presenta los dos métodos expr y sed respectivamente y proporciona un script de juicio. Los amigos que lo necesiten pueden consultarlo.

Método 1: Calcule la variable y agréguela a un valor entero mediante expr. Si se puede ejecutar normalmente, será un número entero. De lo contrario, se producirá un error de ejecución y $? será un valor distinto de 0. El código es de la siguiente manera
:

expr $args + 0 &>/dev/null
  • 1

Método 2: use la sustitución sed para imprimir la variable y reemplace el número en la variable con vacío. Si la variable está vacía después de la sustitución, será un número entero. El código es el siguiente
:

echo $args | sed 's/[0-9]//g'
  • 1

Si se juzga un número negativo, use sed para filtrar el signo negativo y
el código es el siguiente:

echo $args | sed 's/[0-9]//g' | sed 's/-//g'
  • 1

El siguiente script utiliza dos funciones para implementar el juicio numérico. El código es muy simple, no se necesitan comentarios.
El código se muestra a continuación:

#!/bin/bash
usage(){
cat <<EOF
USEAGE:sh $0args1 args2
exit 1
EOF
}
checkInt(){
expr $1+ 0&>/dev/null
[ $? -ne 0] && { echo "Args must be integer!";exit 1; }
}
checkInt1(){
tmp=`echo $1|sed 's/[0-9]//g'`
[ -n "${tmp}"]&& { echo "Args must be integer!";exit 1; }
}
[ $# -ne 2]&&usage
args1=$1
args2=$2
checkInt $args1
checkInt1 $args2
if[ $args1 -gt $args2 ];then
echo "yes,$args1 greate than $args2"
else
echo "no,$args1 less than $args2"
fi

Supongo que te gusta

Origin blog.csdn.net/liuwkk/article/details/109676344
Recomendado
Clasificación