![]() |
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui. |
Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
|
||||
| Fio | Thread Starter | Fórum | Respostas | Última postagem |
| g + + e-R opção | eternalflame | Alto Nível de programação | 0 | 04-14-2008 02:57 |
| opção-n | Ravi raj kumar | Programação Shell Script e | 1 | 01-03-2008 09:20 |
| ps: 65535 é um argumento inválido não numéricos para a opção-p | gogogo | Sun Solaris | 5 | 11-19-2006 06:20 |
| su opção | lesstjm | UNIX & avançada para usuários experientes | 1 | 11-02-2005 01:54 |
| cortar a opção-f | 435 Gavea | UNIX para Dummies Perguntas & Respostas | 1 | 11-10-2003 05:50 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
opção seguida por: tomada próxima opção se argumento ausente com getopts
Oi tudo,
Estou a analisar opções de linha de comando usando getopts. O problema é que o argumento obrigatório opções seguintes ":" se está a próxima opção como argumento, se não for seguido por qualquer argumento. Abaixo está o script: enquanto getopts: hd: t: s: l : f: optfazer caso "$ opt" em -h | - \?) utilização; -d) DEBUG \u003d true; exportação SCRIPT_LOG_LEVEL \u003d DEBUG; -t) DEVTYPE \u003d "$ optarg"; -s) SIG_IP \u003d "$ optarg"; exportação SOCKS5_SERVER \u003d "$ optarg: 9001"; -l) HOST_LOGIN \u003d "$ optarg"; -p) PASSWORD \u003d "$ optarg"; -f) cl_cfile_specd \u003d 1 exportação RUNNING_CONFIG_FILE \u003d "$ optarg"; *) Logmsg "Unrecognized param uso"; esac feito se eu executar o script como: $. / script.sh-d-s-t rdsk guru 12.3.4.5-l-p-f / usr / local / sc.conf a opção-p-f está tomando como argumento. Por favor, ajudem-me a jogar um erro e sair do script se obrigatória argumento não é passado para o script. Também a forma de lidar com as opções tendo - ou seja - logfile. Por favor ajudem com o problema acima |
|
||||
|
Como uma observação sobre a concepção, talvez eles não devem ser "opções" se eles são obrigatórios. Após o ciclo while, verifique se a senha ou ficheiro de configuração é um unset, e morrer se for? Eu não acredito que há uma forma padrão para obter longo opções com getopts, você pode rolar o seu próprio bem. Código:
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
Tornando morrer graciosamente quando uma opção que exige um argumento não receber nenhuma (ou seja, $ 2 não é fixado em todos) é deixada como um exercício. O problema de ver que $ 2 é a próxima opção é inteligência artificial (ou você pode inventar um mecanismo separado para especificar um argumento que começa com o traço, de modo que você pode proibir opção argumentos para começar com um hífen no caso geral. Não sei, Não sei se isso é bom ou mau uso). |
![]() |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|