The UNIX and Linux Forums  


Go Back   В UNIX и Linux Форумы > Топ форумы > Shell программирование и сценарии
.
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

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 03-17-2008
gurukottur gurukottur is offline
Зарегистрированный пользователь
  
 

Регистрация: Apr 2006
Сообщений: 40
вариант следуют: принимая следующий вариант, если аргумент отсутствует с 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 в качестве аргумента.

Пожалуйста, помогите мне, как бросить ошибку и выйти из сценария, если обязательный аргумент не передан скрипту.

Кроме того, как бороться с вариантами имеющие - а именно - лог-файл.

Пожалуйста, помогите с вышеуказанной проблемой
Old 03-17-2008
drl's Avatar
ДРЛ drl is offline Forum Advisor  
Зарегистрированный пользователь
  
 

Регистрация: Apr 2007
Место проведения: Санкт-Пол, Миннесота США / BSD, CentOS, Debian, OS X, Solaris
Сообщений: 712
Привет.

Как следует getopts известно, что строка "-F", не соответствующего значения для аргумента опция "-P"? ... Cheers, ДХО

PS В getopts Я использую, в случае выбора не должны ведущий "-" символы.

PPS Также заметьте, что вы поставили "D:", но не использовали OPTARG в случае селектор на "-D".

Последний раз редактировалось ДХО; на 03-17-2008 12:36 PM..
Old 03-17-2008
эпоха
Гость
  
 

Сообщений: N / A
Биты: 0 [Банковские]
Как замечание по дизайну, возможно, они не должны быть "варианты", если они носят обязательный характер.

После того как в то время как петля, проверьте, если пароль или конфигурационный файл не установлена, и умереть, если оно есть?

Я не думаю, что есть стандартный способ получить длинные варианты 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 следующий вариант искусственного интеллекта (или можно придумать отдельный механизм для определения аргумента, который начинается с тире, так что вы можете запретить варианта аргументов для запуска с тире в общее дело. Я не не знаю, если это хороший или плохой юзабилити).
Closed Thread

Закладки

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся На




Часовой пояс GMT -4. Текущее время 02:05 AM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
В UNIX и Linux форумы Содержание Copyright © 1993-2009. Все права Reserved.Ad управления по RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0