Условное назначение сценария оболочки bash - PullRequest
5 голосов
/ 19 июля 2011

Я пишу скрипт оболочки bash.Есть обязательный первый аргумент, и я хочу иметь необязательный второй аргумент.

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

В настоящее время у меня есть:

SOMEVAR=${2:-Untitled}

Как я могу использовать что-то вроде basename $1 вместо Untitled?

Ответы [ 2 ]

8 голосов
/ 19 июля 2011

Вы можете просто сделать что-то вроде SOMEVAR=${2:-$(basename "$1")}. Вы можете сделать любую оболочку или переменную в необязательной части.

3 голосов
/ 19 июля 2011

Просто используйте подстановку команд: $(basename $1), буквально вместо Untitled.

Однако bash также может делать это без внешнего процесса: ${1##*/}

SOMEVAR=${2:-${1##*/}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...