这将检查参数是否为Bourne Shell Script中的整数:
if [[ $3 =~ ^[0-9]+$ ]] && (( $3 >= 1 ))
如何检查参数是否不是整数(可以包含整数和字母)? 所以,我想这只是上面的补充,但我不知道如何改变它。 我在哪里可以找到这些符号含义的信息?: =〜^ + $&
答案 0 :(得分:3)
如果条件检查如下,您可以使用De Morgan's Law否定:
if [[ ! $3 =~ ^[0-9]+$ ]] || (( $3 < 1 ))
!
内的[[...]]
符号表示否定。$3 < 1
是对$3 >= 1
=~
运算符允许在if语句中使用正则表达式。
此处使用的&&
表示“逻辑与”
其余符号^ + $
适用于Regular Expression,这是一个比我在此答案中提供的阅读更多的主题,但简而言之:
^
:匹配行的开头+
:匹配一个或多个(在此上下文中匹配一个或多个数字)$
:匹配行尾^[0-9]+$
表示:只匹配除数字之外的其他字符串。