Я хочу решить, нужно ли всегда пропустить кавычки для переменных, появляющихся с тестом Bash [[
. Я интерпретирую страницу man
, чтобы сказать, что это допустимо сделать без какой-либо потери правильности.Bash [[тесты, цитирующие переменные
Я придумал этот упрощенный «тест», чтобы проверить свое мышление и «ожидаемое поведение», но он не может доказать, абсолютно ничего, посмотри на него:
x='1 == 2 &&'; if [[ $x == '1 == 2 &&' ]]; then echo yes; else echo no; fi
Примечание Я не пишу это как таковой:
x='1 == 2 &&'; if [[ "$x" == '1 == 2 &&' ]]; then echo yes; else echo no; fi
, который до сих пор всегда был моим стилем, для согласованности, если ничего другого.
ли безопасно переключить кодирования конвенции в всегда опустить кавычки для переменных, входящих в [[
тестов?
Я пытаюсь узнать Bash, и я пытаюсь сделать это собирание хорошие привычки, хороший стиль и правильность ..
Одно предостережение: На правой стороне == и =, если он не котируется он рассматривается как образец, а не строки!. Итак, если 'x =" Now - это '' и 'y =" [nN] ow * "', тогда '[[$ x ==" $ y "]]' false, тогда как '[[$ x == $ y] ] 'истинно. Это может вас укусить в какой-то момент. – William
Отличная точка! Благодаря!! Я имел в виду только левую сторону, хотя .. (я должен был указать это). Был рад узнать ваше понимание, хотя .. – Robottinosino