Передача переменных в скрипт [дубликат]

0
21.06.2016, 22:04
2 ответа

$VARIABLE и ${VARIABLE} фактически одинаковы, если они являются отдельными словами. Но обратите внимание на следующий пример, особенно в скрипте

VARIABLE=USER
echo $VARIABLE

вы получаете вывод

USER

, но когда вы вводите

echo $VARIABLE1

, ожидая получить

USER1

, вы ничего не получаете, так как нет переменной, как определено VARIABLE1

Но если вы используете

echo ${VARIABLE}1

, вы получаете ожидаемый вывод USER1.

1
28.01.2020, 02:48

от Шона Гоффа: $VAR vs ${VAR} и цитировать или не цитировать

VAR=$VAR 1 - это упрощенная версия VAR=${VAR1}. Есть вещи, которые второй может сделать то, что первый не может, например, ссылаться на массив индексировать (не переносимо) или удалять подстроку (POSIX-portable). См. Подробнее о разделе переменных руководства Bash для начинающих и Расширение параметров в спецификации POSIX.

Использование кавычек вокруг переменной, как в rm -- "$VAR 1" или rm -- "${VAR}" это хорошая идея. Это делает содержимое переменной атомарным. единица. Если значение переменной содержит пробелы (ну, символы в $IFS специальная переменная, по умолчанию пустые) или символы globbing и Вы не цитируете его, тогда каждое слово считается для имени файла поколение (глоббинг), расширение которого приводит столько аргументов к что бы вы ни делали.

0
28.01.2020, 02:48

Теги

Похожие вопросы