Значения по умолчанию для сценария оболочки Unix? - PullRequest
11 голосов
/ 08 июля 2011

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

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

Ответы [ 4 ]

13 голосов
/ 08 июля 2011

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

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

9 голосов
/ 08 июля 2011

Вы можете рассмотреть:

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

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

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

4 голосов
/ 08 июля 2011
#!/bin/sh
MY_PARAM=${1:-default}

echo $MY_PARAM
0 голосов
/ 27 марта 2012

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...