在搜索(和学习)bash 模式匹配时,我发现变量中的一美元似乎被解释为其他东西。在 AGENT= 之后引用 $
例如,我试图在以下位置找到“代理”的值:
PAGE1="...&METHOD=GET&AGENT=$SM$NpBsRicQN9x%CBn&TARGET=$SM$https%3a%2f%2fwww..."
使用:
if [[ $PAGE1 =~ ^.*AGENT=([\$a-zA-Z]*) ]]
then
echo ${BASH_REMATCH[1]}
...
并且第一个 $ 不会被捕获。为什么?
现在正在测试,稍后是来自 cURL 请求的 $PAGE1。