Bash在变量中转义@符号

Bash在变量中转义@符号,bash,sed,Bash,Sed,我对Bash脚本中的if语句有问题。代码如下: if [[ "$AppleID" -ne "" ]]; then echo "<result>${AppleID}</result>" else echo "No user logged in." fi 我尝试使用sed来转义角色,如下所示: if [[ `echo $(printf '%q' $AppleID) | sed -e 's/[\/&]/\\&/g'` -ne "" ]]; th

我对Bash脚本中的if语句有问题。代码如下:

if [[ "$AppleID" -ne "" ]]; then
    echo "<result>${AppleID}</result>"
else
    echo "No user logged in."
fi
我尝试使用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
-ne用于比较整数。你想要,或者更好的方法是使用-n测试其参数是否为非空字符串:

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

我对bash很陌生…:非常感谢你!我对bash很陌生…:非常感谢你!