Как работает расширение параметра Bash?

Я пытаюсь понять сценарий Bash. Я наткнулся на это:

DIR=${1:-"/tmp"} 

Что это значит?

:- на самом деле оператор говорит, что если $1 (первый аргумент скрипту) не установлен или равен null используйте /tmp как значение $DIR и если он установлен, присвойте его значение $DIR .

 DIR=${1:-"/tmp"} 

сокращается для

 if [ -z $1 ]; then DIR='/tmp' else DIR="$1" fi 

Он может использоваться с любыми переменными, а не только с позиционными параметрами:

 $ echo ${HOME:-/tmp} # since $HOME is set it will be displayed. /home/codaddict $ unset HOME # unset $HOME. $ echo ${HOME:-/tmp} # since $HOME is not set, /tmp will be displayed. /tmp $ 

Этот синтаксис – это расширение параметра :

 ${parameter:-word} 

Если parameter не задан или нулевым, заменяется word . В противном случае значение parameter заменяется.

Поэтому, если $1 не задано или равно null, он оценивает значение "/tmp" и значение $1 противном случае.

  • Как проверить, существует ли строка в файле с Bash?
  • Что такое возврат каретки, перевод строки и фид?
  • Алгоритм поиска нескольких совпадений строк
  • Получить строку после символа
  • Получить n-й символ строки в языке программирования Swift
  • Форматировать строку Go без печати?
  • Объединение нулевых строк в Java
  • Является ли строка Java действительно неизменной?
  • Эквивалент Sprintf в Java
  • Самый быстрый способ удалить все непечатаемые символы из строки Java
  • В чем преимущество непрерывности String?
  • Давайте будем гением компьютера.