この演算子を使用すると、スクリプトにエラーが発生します。オンラインにはいくつかの文書があり、二重等号が機能するはずです。どんなアイデアがありますか?
Zshリファレンスガイド:http://zsh.sourceforge.net/Doc/Release/Conditional-Expressions.html
スクリプト:
#!/bin/zsh
if [ $_user == "root" ]; then
echo "root"
else
echo "not root"
fi
実行してください:
$ ./script.sh
./script.sh:3: = not found
ベストアンサー1
簡単な答え:aは==
aです論理演算子[[ … ]]
構造物内部でのみ可能です。
$ [[ one == one ]] && echo "yes"
yes
kshとbashでも動作します。
[[ … ]]
構造物外で使用される場合=cmdは次のようになります。ファイル名拡張演算子しかしzshでのみ
$ echo ==
zsh: = not found
[ … ]
これはあなたが使用するより簡単な構成で起こるものです。
ただし、シェルスクリプトを実行しているユーザーがrootであるかどうかをテストする正しい方法は次のとおりです。
if (( EUID == 0 )); then
echo "root"
else
echo "not root"
fi