Описание тега shokugeki-no-soma
Спасибо! Я удалил его, но решили не заморачиваться повторно установить Chrome. @SteveChambers вот что я делаю, проблема в том, что изменений, легко достигать сотен мегабайт в час для меня. Собственная выдумка. Тяга к формы ведет к рождению в мирах форм. Но он не создает самостоятельно. Понятие " я " - это просто недоразумение с самого начала. благодарю вас, сэр. изначально я объединил их, но, похоже, script2 будет выполняться несколько раз, пока script1 должен быть выполнен только один раз (но должен произойти до script2 можно на всех). Полагаю, я мог бы иметь логику, чтобы перейти к конкретной части в скрипте (например, меню с просьбой, если вы хотите сделать или функциональности часть1 часть2 по.) Я чувствую, что там может быть более элегантное решение.
Встроенные команде getopts
только разбирать короткие варианты (кроме ksh93),
но можно еще добавить несколько строк из сценария, чтобы сделать команде getopts обрабатывает длинные варианты.
Вот часть кода нашли в http://www.uxora.com/unix/shell-script/22-handle-long-options-with-getopts
#== набор коротких опционов ==#
SCRIPT_OPTS=':фбф:б:-:ч'
#== набор длинные варианты, связанные с коротким ==#
верстал -в ARRAY_OPTS
ARRAY_OPTS=(
[ФОО]=Ф
[бар]=б
[фрагментик]=Ф
[barfoo]=Б
[справка]=ч
[человек]=ч
)
#== параметры анализа ==#
в то время как команде getopts параметр ${SCRIPT_OPTS}; делать
#== переводить длинные варианты, короткие ==#
если [[ "параметр X$" = = "х" ]]; затем
LONG_OPTION=$OPTARG
LONG_OPTARG=$(Эхо $LONG_OPTION | грэп "=" | вырезать -д'=' -Ф2)
LONG_OPTIND=-1
[[ "х$LONG_OPTARG" = "х" ]] && LONG_OPTIND=$OPTIND || LONG_OPTION=$("Эхо" $OPTARG | вырезать -д'=' -Ф1)
[[ $LONG_OPTIND -нэ -1 ]] && ивала LONG_OPTARG="\$$LONG_OPTIND"
ВАРИАНТ=${ARRAY_OPTS[$LONG_OPTION]}
[[ "параметр X$" = "х" ]] && параметр="?" OPTARG="-$LONG_OPTION"
если [[ $( Эхо "${SCRIPT_OPTS}" | команда grep -с "${параметр}:" ) -экв 1 ]]; затем
если [[ "Х${LONG_OPTARG}" = "х" ]] || [[ "${LONG_OPTARG}" = -* ]]; затем
ПАРАМЕТР=":" OPTARG="-$LONG_OPTION"
еще
OPTARG="$LONG_OPTARG";
если [[ $LONG_OPTIND -нэ -1 ]]; затем
[[ $OPTIND -Ле $Optnum ]] && OPTIND=$(( $OPTIND+1 ))
сдвиг $OPTIND
OPTIND=1
интернет
интернет
интернет
интернет
#== отбросить возможность начать спор с дефисом ==#
если опция [[ "х${}" ! = "х:" ]] и & [["Х${}" ! = "х?" ]] && [[ "${OPTARG}" = -* ]]; затем
OPTARG="$ПАРАМЕТР" ПАРАМЕТР=":"
интернет
#== управление ==#
опцию case "$" в
Ф ) Фу=1 бар=0 ;;
б ) ФОО=0 бар=1 ;;
Б ) barfoo=${OPTARG} ;;
Ф ) фрагментик=1 && foobar_name=${OPTARG} ;;
з ) usagefull && выхода 0 ;;
: ) Эхо "${ИМЯ_СЦЕНАРИЯ}: -$OPTARG: опция требует аргумент" >&2 && использования >&2 & выход& 99 ;;
? ) Эхо "${ИМЯ_СЦЕНАРИЯ}: -$OPTARG: неизвестный параметр" >&2 && использования >&2 & выход& 99 ;;
эсок
сделано
клавишу Shift $((${OPTIND} - 1))
Вот тест:
# Короткие тестовые варианты
$ ./foobar_any_getopts.sh -БФ "Привет мир" -Б 6 файл1 файл2
ФОО=0 бар=1
barfoo=6
фрагментик=1 foobar_name=Привет, мир
файлы=файл1 файл2
# Длинные и короткие тестовые варианты
$ ./foobar_any_getopts.sh --бар -Ф Здравствуйте --barfoo 6 файл1 файл2
ФОО=0 бар=1
barfoo=6
фрагментик=1 foobar_name=Привет
файлы=файл1 файл2
В противном случае в последние Korn-оболочки ksh93, команде getopts
можно естественно разобрать длинные варианты и даже отображать страницу одинаково. (см. http://www.uxora.com/unix/shell-script/20-getopts-with-man-page-and-long-options).