Значения по умолчанию для оболочки unix script?

Обычно, когда параметр передается в оболочку script, значение переходит в ${1} для первого параметра, ${2} для второго и т.д.

Как установить значения по умолчанию для этих параметров, поэтому, если параметр script не передан ни одному параметру, мы можем использовать значение по умолчанию для ${1}?

Ответ 1

Вы не можете, но вы можете назначить локальную переменную следующим образом: ${parameter:-word} или использовать ту же конструкцию в том месте, где вам нужно $1. эти menas используют слово, если _paramater имеет значение null или unset

Обратите внимание, что это работает в bash, проверьте свою оболочку на синтаксис значений по умолчанию

Ответ 2

Вы можете подумать:

set -- "${1:-'default for 1'}" "${2:-'default 2'}" "${3:-'default 3'}"

Остальная часть script может использовать $1, $2, $3 без дополнительной проверки.

Примечание. Это не работает, если вы можете иметь неопределенный список файлов в конце ваших аргументов; он работает хорошо, когда вы можете иметь только от нуля до трех аргументов.

Ответ 3

#!/bin/sh
MY_PARAM=${1:-default}

echo $MY_PARAM

Ответ 4

Возможно, я плохо понимаю ваш вопрос, но я бы счел нужным решить проблему менее сложным образом:

                     ! [[ ${1} ]]   &&   declare $1="DEFAULT"

Надеюсь, что это поможет.