1
Bashスクリプトのif文に問題があります。ここでは、コードです:Bashのエスケープ記号@変数の変数
if [[ "$AppleID" -ne "" ]]; then
echo "<result>${AppleID}</result>"
else
echo "No user logged in."
fi
次のように$AppleID
と仮定すると、エラーメッセージが「[email protected]」の値を持つ文字列です:
[[: [email protected]: syntax error: invalid arithmetic operator (error token is "@email.com")
私は脱出するsedを使ってみましたこのような文字:
if [[ `echo $(printf '%q' $AppleID) | sed -e 's/[\/&]/\\&/g'` -ne "" ]]; then
しかし、私は同じエラーが発生します。 @記号をエスケープするにはどうすればよいですか?
:あなたは
!=
をしたい、またはより良いまだ、ちょうど-n
を(その引数が空の文字列かどうかをテストしている)を使用します! –