繁体   English   中英

重击转义@符号在变量中

[英]Bash Escaping @ Symbol In Variable

我在Bash脚本中的if语句有问题。 这是代码:

if [[ "$AppleID" -ne "" ]]; then
    echo "<result>${AppleID}</result>"
else
    echo "No user logged in."
fi

假设$AppleID是一个值为“ test@email.com”的字符串,错误消息如下:

[[: test@email.com: syntax error: invalid arithmetic operator (error token is "@email.com")

我试过使用sed来转义字符,如下所示:

if [[ `echo $(printf '%q' $AppleID) | sed -e 's/[\/&]/\\&/g'` -ne "" ]]; then

但是我得到了同样的错误。 如何转义@符号?

-ne用于比较整数。 您想要!= ,或者更好,只需使用-n (它会测试其参数是否为非空字符串):

if [[ -n "$AppleID" ]]; then
    echo "<result>${AppleID}</result>"
else
    echo "No user logged in."
fi

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM