Mawg says reinstate Monica Asked: 2019-10-25 00:08:55 +0800 CST2019-10-25 00:08:55 +0800 CST 2019-10-25 00:08:55 +0800 CST /bin/sh 脚本 - 如何判断参数是 1 还是 2? 772 我得到了一个脚本来修改。它使用/bin/sh,我可能不会改变它。 我想检查一个参数是否是一个整数——特别是 1 或 2。 我该怎么做,并满足参数不存在或字符串以及无效整数的情况? shell-script 2 个回答 Voted Best Answer Kusalananda 2019-10-25T01:41:09+08:002019-10-25T01:41:09+08:00 要检查脚本的参数是否是,1或者2您可以简单地使用 case 语句。 下面的代码假设您要检查$1: case $1 in [12]) # $1 is 1 or 2 ;; *) # $1 is not 1 and not 2 esac 没有真正需要验证参数是否为有效整数,因为您只关心两个特定值,并且可以轻松地将它们验证为字符串。除非在算术上下文中使用,否则 shell 变量的值始终是字符串,这里没有理由这样做。 您还可以使用显式if声明: if [ "$1" = '1' ] || [ "$1" = '2' ]; then # $1 is 1 or 2 else # $1 is not 1 and not 2 fi manchanda 2019-10-25T00:29:29+08:002019-10-25T00:29:29+08:00 检查以下链接以检查参数值是否为整数。 https://stackoverflow.com/questions/2210349/test-whether-string-is-a-valid-integer 并检查是否缺少变量,假设您将第一个参数分配给变量 var=$1 if [ ! -z "$var" ]; then echo "value is present" else echo "value is not present" fi
要检查脚本的参数是否是,
1
或者2
您可以简单地使用 case 语句。下面的代码假设您要检查
$1
:没有真正需要验证参数是否为有效整数,因为您只关心两个特定值,并且可以轻松地将它们验证为字符串。除非在算术上下文中使用,否则 shell 变量的值始终是字符串,这里没有理由这样做。
您还可以使用显式
if
声明:检查以下链接以检查参数值是否为整数。
https://stackoverflow.com/questions/2210349/test-whether-string-is-a-valid-integer
并检查是否缺少变量,假设您将第一个参数分配给变量