1

Выполнение команды дает

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

Код

# 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"
}

1 ответ1

2

Если вы выполняете эту функцию из приглашения оболочки, команда exit говорит оболочке выйти, а не функции. Вы, вероятно, должны использовать вместо этого return .

Вы можете использовать возвращаемое значение с return и test для этого в скрипте, который вызывает функцию, и использовать exit там для выхода из скрипта (или не в зависимости от возвращаемого значения).

$ testfunc(){ return ${1:-0}; }
$ testfunc
$ echo $?
0
$ testfunc 0
$ echo $?
0
$ testfunc 1
$ echo $?
1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .