Сценарии оболочки: способ анализа параметров из командной строки

2035
bguiz
myscript [-a a-arg] [-c c-arg] [-b] [-e] somedirectory 

Учитывая, что я хочу, чтобы мой сценарий оболочки вызывался из командной строки с использованием указанных выше параметров - где [эти квадратные скобки] обозначают, что они являются необязательными, - какой лучший способ их проанализировать?

4

1 ответ на вопрос

5
John T

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

Например:

#!/bin/bash while getopts "abc:" flag do echo "$flag" $OPTIND $OPTARG done 
[~] $. / ssc.sh -ab -c file 1 Би 2 с 4 файла
@ Джон Т. Спасибо за ответ: решите все, кроме последнего: мой `somedirectory` не является опцией - как бы я получил последний параметр (после того, как` getopts` закончит цикл)? bguiz 14 лет назад 0
Я думаю, это будет последний оставшийся вариант в `$ @`. John T 14 лет назад 0
Понял - `shift $ (($ OPTIND - 1))` было то, что я был после! bguiz 14 лет назад 1
Отлично! Удачного сценария :) John T 14 лет назад 0

Похожие вопросы