Shell 检查参数是否不是整数

Shell 检查参数是否不是整数,shell,integer,arguments,Shell,Integer,Arguments,此检查参数在Bourne Shell脚本中是否为整数: if [[ $3 =~ ^[0-9]+$ ]] && (( $3 >= 1 )) 如何检查参数是否不是整数(可以由整数和字母组成)? 所以,我想这只是上面的补充,但我不知道如何改变它。 我在哪里可以找到这些符号的含义的信息 =~^+$&您可以使用以下方法否定if条件检查: if [[ ! $3 =~ ^[0-9]+$ ]] || (( $3 < 1 )) if[!$3=~^[0-9]+$]| |($3

此检查参数在Bourne Shell脚本中是否为整数:

if [[ $3 =~ ^[0-9]+$ ]] && ((  $3 >= 1 ))
如何检查参数是否不是整数(可以由整数和字母组成)? 所以,我想这只是上面的补充,但我不知道如何改变它。 我在哪里可以找到这些符号的含义的信息 =~^+$&

您可以使用以下方法否定if条件检查:

if [[ ! $3 =~ ^[0-9]+$ ]] || ((  $3 < 1 ))
if[!$3=~^[0-9]+$]| |($3<1))
  • 内部的符号
    […]
    表示否定
  • $3<1
    $3>=1
=~
运算符允许在if语句中使用正则表达式

此处使用的
&&
表示“逻辑与”

其余符号
^+$
用于,这是一个值得我在本答案中提供的更多阅读的主题,但简而言之:

  • ^
    :匹配行首
  • +
    :匹配一个或多个数字(在此上下文中,它匹配一个或多个数字)
  • $
    :匹配行尾
  • 总之,
    ^[0-9]+$
    意味着:只匹配数字以外的字符串