Практически везде, где я читал, в том числе руководство по стилю скриптов в стиле Google, упоминается необходимость цитирования подстановок команд (за исключением тех случаев, когда это было особенно желательно).Нужно ли указывать замену команд при присваивании переменных в bash?
Насколько я понимаю, когда/где/почему цитаты команд заменены во время общего использования. Например: echo "$(cat <<< "* useless string *")"
вместо echo $(...)
Однако для присвоения переменных в частности, я видел так много примеров, как например: variable="$(command)"
Но я не нашел примеров, когда variable=$(command)
не является эквивалентом.
variable="$(echo "*")"
и variable=$(echo "*")
оба устанавливают значение в '*'.
Может ли кто-нибудь дать ситуации, когда оставляющая подстановочную позицию без кавычек во время выбора переменной фактически вызовет проблему?
Хороший вопрос! Я сделал много тестов, и похоже, что они точно такие же, никаких различий. – fedorqui
Я думаю, что вопрос, о котором он спрашивает, может произойти с $ cmd, $ {cmd}. В подстановке и в предложениях If нам нужно «». Пожалуйста, исправьте, если я ошибаюсь –