Установить пользовательскую переменную по умолчанию в скриптах bash - PullRequest
2 голосов
/ 28 сентября 2010

Я пишу сценарий оболочки bash, который запускается там, где от пользователя ожидается путь к нему в виде переменной $ 1. Как я могу определить, отсутствует ли 1 доллар, и определить для него значение по умолчанию?

Ответы [ 2 ]

9 голосов
/ 28 сентября 2010

Вы можете проверить длину переменной.

if [[ -z $1 ]]; then
    echo '$1 is zero-length. Please provide a value!'
fi

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

first_param=${1:-defaultvalue}

${varname:-foo} Конструкция будет использовать значение varname, если оно установлено, или использовать то, что следует за :-, если оно не установлено.

1 голос
/ 28 сентября 2010

Вы имеете в виду определить, отсутствует ли значение или отсутствуют каталоги в пути?Для первого:

MYPATH=$1
if [[ -z $MYPATH ]]
then
    MYPATH=$MYDEFAULTPATH
fi

для второго:

MYPATH=$1
if [[ ! -d $MYPATH ]]
then
    MYPATH=$MYDEFAULTPATH
fi
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...