![]() |
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь. |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| G + + и-R вариант | eternalflame | Программирования высокого уровня | 0 | 04-14-2008 02:57 PM |
| -N варианта | Рави Радж Кумар | Shell программирование и сценарии | 1 | 01-03-2008 09:20 AM |
| PS: 65535 является недействительным, не-цифровой аргумент для опции-P | gogogo | SUN Solaris | 5 | 11-19-2006 06:20 PM |
| ваш вариант | lesstjm | UNIX перспективных И опытных пользователей | 1 | 11-02-2005 01:54 PM |
| светотеневую F вариант | 435 Gavea | UNIX для чайников Вопросы И Ответы | 1 | 11-10-2003 05:50 PM |
![]() |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
|
|
||||
|
вариант следуют: принимая следующий вариант, если аргумент отсутствует с getopts
Привет всем,
Я разбора командной строки, используя эту getopts. Проблема заключается в том, что обязательный аргумент эту следующее ":" принимает следующий вариант в качестве аргумента, если оно не сопровождается какой-либо аргумент. Ниже приведен сценарий: в то время как getopts: HD: T: S: L : F: выбратьделать случае "$ OPT" в -H | - \?) использование;; -D) DEBUG \u003d TRUE; экспорт SCRIPT_LOG_LEVEL \u003d DEBUG;; -T) DEVTYPE \u003d "$ OPTARG";; -S) SIG_IP \u003d "$ OPTARG"; экспорт SOCKS5_SERVER \u003d "$ OPTARG: 9001";; -L) HOST_LOGIN \u003d "$ OPTARG";; -P) Пароль \u003d "$ OPTARG";; -F) cl_cfile_specd \u003d 1 экспорт RUNNING_CONFIG_FILE \u003d "$ OPTARG";; *) Logmsg "Нераспознанные Парама пользования";; esac готово если я запускаю скрипт, как: $. / script.sh-Д-Т rdsk-х 12.3.4.5 гуру-L-P-F / USR / местные / sc.conf опция-P берет-F в качестве аргумента. Пожалуйста, помогите мне, как бросить ошибку и выйти из сценария, если обязательный аргумент не передан скрипту. Кроме того, как бороться с вариантами имеющие - а именно - лог-файл. Пожалуйста, помогите с вышеуказанной проблемой |
|
||||
|
Как замечание по дизайну, возможно, они не должны быть "варианты", если они носят обязательный характер. После того как в то время как петля, проверьте, если пароль или конфигурационный файл не установлена, и умереть, если оно есть? Я не думаю, что есть стандартный способ получить длинные варианты getopts, вы можете ролл собственную, хотя. Код:
while :
do
case $# in 0) break;; esac
case $1 in
-h|-\?|--help) usage;;
-d|--debug) DEBUG=true;export SCRIPT_LOG_LEVEL=DEBUG; shift ;;
-t|--type) DEVTYPE="$2"; shift; shift ;;
-s|--socks) SIG_IP="$2"; export SOCKS5_SERVER="$2:9001"; shift; shift ;;
-l|--login) HOST_LOGIN="$2"; shift; shift;;
-p|--password) PASSWORD="$2"; shift; shift ;;
-f|--config-file) cl_cfile_specd=1
export RUNNING_CONFIG_FILE="$2"; shift; shift ;;
-*) logmsg "Unrecognized param usage";;
esac
done
Создание изящно, когда умирает один вариант, который требует аргумент не получает какого-либо (то есть $ 2 не установлен вообще) оставлено в качестве упражнения. Проблема с тем, что $ 2 следующий вариант искусственного интеллекта (или можно придумать отдельный механизм для определения аргумента, который начинается с тире, так что вы можете запретить варианта аргументов для запуска с тире в общее дело. Я не не знаю, если это хороший или плохой юзабилити). |
![]() |
| Закладки |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|