Bash 脚本中有关参数和 Wget 有什么错误?

Bash 脚本中有关参数和 Wget 有什么错误?

运行命令得到

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

如果您从 shell 提示符执行此函数,则exit命令会告诉 shell 退出,而不是函数退出。您可能应该使用return

您可以使用返回值return并在调用该函数的脚本中测试该值,然后使用exit 那里退出脚本(或不依赖于返回值)。

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

相关内容