以下代码适用于bash,但现在我需要它用于busybox ash,它显然没有“=〜”
keyword="^Cookie: (.*)$"
if [[ $line =~ $keyword ]]
then
bla bla
fi
是否有合适的替代品?
很抱歉,如果这是超级用户问题,则无法决定。
编辑:也没有grep,sed,awk等。我需要纯灰。
答案 0 :(得分:4)
对于此特定正则表达式,您可能会遇到parameter expansion hack:
if [ "$line" = "Cookie: ${line#Cookie: }" ]; then
echo a
fi
或pattern matching notation +案例黑客:
case "$line" in
"Cookie: "*)
echo a
;;
*)
;;
esac
然而,这些解决方案的强大程度远低于regexes,因为它们没有真正的Kleene星*
(只有.*
),你应该真的获得更多在该系统上安装的强大工具(像Python这样真正的编程语言?)或将受损。
答案 1 :(得分:2)
Busybox附带一个expr
小程序,可以进行正则表达式匹配(锚定到字符串的开头)。如果正则表达式匹配,则其返回码为0.示例:
# expr "abc" : "[ab]*"
# echo $?
0
# expr "abc" : "[d]*"
# echo $?
1
答案 2 :(得分:0)