我希望这只输出"匹配!" 如果只传递单个字符"a"或"b"作为参数.不是aaaaa,不是bcfqwefqef,不是qwerty.
#!/bin/bash
P="a|b"
if [[ "$1" =~ $P ]]; then
echo "match!"
else
echo "no!"
fi
Run Code Online (Sandbox Code Playgroud)
是的,我已经通过一些SO帖子来实现这一点.将$ P加入引号也不起作用.
你需要锚定你的正则表达式:
#!/bin/bash
re="^(a|b)$"
if [[ "$1" =~ $re ]]; then
echo "match!"
else
echo "no!"
fi
Run Code Online (Sandbox Code Playgroud)
顺便说一下这不需要正则表达式.您可以使用glob模式使用相等:
if [[ "$1" == [ab] ]]; then
echo "match!"
else
echo "no!"
fi
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
159 次 |
| 最近记录: |