Значения по умолчанию для оболочки 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"
Надеюсь, что это поможет.