O que há de errado no script Bash sobre parâmetros e Wget?

1

Runnning o comando dá

wget_exam -h
Usage: wget_exam2 <fileType> <source>
exit     // then immediately Terminal shut dows

O código

# example wget_exam2 java http://www.example.com/ex_1
function wget_exam2 {
    while [[ $1 == -* ]]; do
    case "$1" in 
        -h|--help|-\? ) echo "Usage: wget_exam2 <fileType> <source>"; exit;;
            --) shift; break;;
        -*) echo "invalid option: $1"; echo "Usage: wget_exam2 <fileType> <source>"; exit;;
    esac
    done
    wget --random-wait -nd -r -p -A "$1" -e robots=off -U mozilla "$2"
}
    
por Léo Léopold Hertz 준영 20.01.2010 / 13:38

1 resposta

2

Se você estiver executando essa função a partir de um prompt de shell, o comando exit está instruindo o shell a sair em vez da função. Você provavelmente deve usar return .

Você pode usar um valor de retorno com return e testar para isso no script que chama a função e usar o exit para sair do script (ou não, dependendo do valor de retorno ).

$ testfunc(){ return ${1:-0}; }
$ testfunc
$ echo $?
0
$ testfunc 0
$ echo $?
0
$ testfunc 1
$ echo $?
1
    
por 20.01.2010 / 17:41

Tags