我想检查 bash 函数的两个参数是否是数字,最后一个参数是否是存在的目录。
已经这样做了,但实施起来还很不够。
if [[ $1 =~ "^[0-9]+$" ]] \
&& [[ $2 =~ "^[0-9]+$" ]] \
&& [[ -d $3 ]]
then
do_something
fi
答案1
正则表达式元字符不应被引用 -尝试作为字符串"^[0-9]+$"
进行匹配。^[0-9]+$
man bash
说
另一个二元运算符 =~ 可用...
...模式的任何部分都可以被引用,以强制引用的部分作为字符串进行匹配。