检查 bash 函数参数

检查 bash 函数参数

我想检查 bash 函数的两个参数是否是数字,最后一个参数是否是存在的目录。

已经这样做了,但实施起来还很不够。

if   [[ $1 =~ "^[0-9]+$" ]]  \
  && [[ $2 =~ "^[0-9]+$" ]]  \
  && [[ -d $3 ]]
then
  do_something
fi

答案1

正则表达式元字符不应被引用 -尝试作为字符串"^[0-9]+$"进行匹配。^[0-9]+$

man bash

另一个二元运算符 =~ 可用...

...模式的任何部分都可以被引用,以强制引用的部分作为字符串进行匹配。

相关内容