Мне нелегко обернуть мой скучный маленький мозг вокруг различных употреблений [
]
, цитируемых переменных и -eq
против ==
.
В чем разница между этими утверждениями? Это так просто, как один более послушный, чем другой, или есть функциональное различие, о котором я должен беспокоиться?
[ ! -z "$var" ] && echo "Not empty" || echo "Empty"
[[ ! -z "$var" ]] && echo "Not empty" || echo "Empty"
и как насчет:
if "$report" == "1"; then blah; fi
против
if [ "$report" == "1" ]; then blah; fi
против
[ "$report" -eq 1 ]; then blah
Я понял, что [
- это тестовая функция в оболочке, но я не понимаю, когда мне нужно начинать с if
или когда это не обязательно