3. exit 命令

exit 命令使用来终止当前脚本程序的(结束当前进程),并返回一个退出状态码给调用者(终端或父进程)。

普通 shell 程序执行完毕最后一条命令才能退出,使用 exit 命令可以随时结束执行并退出。

命令格式

exit [n]

命令说明

示例:

编写脚本文件 test_exit.sh 测试 exit 命令中途退出 Shell 程序,内容如下:

echo "程序开始"
exit 10
echo "程序结束"

执行结果

weimingze@mzstudio:~$ bash test_exit.sh
程序开始
weimingze@mzstudio:~$ echo $?
10

示例2

编写文件 make_chapter_dir.sh ,此程序有一个整数的参数表示章节,创建一系列文件夹,如 ./make_chapter_dir.sh 15,程序则创建 chapter_15/videochapter_15/mp4chapter_15/code三个文件夹。

if [ $# -ne 1 ]; then
    echo -e "USAGE:\n\t./make_chapter_dir.sh xx"
    exit 1;
fi
# 使用printf 命令格式化字符串
chapter_dir=`printf "chapter_%02d\n" $1`
echo "mkdir" $chapter_dir
mkdir -p ${chapter_dir}/video
mkdir -p ${chapter_dir}/mp4
mkdir -p ${chapter_dir}/code
exit 0

执行结果

weimingze@mzstudio:~$ chmod +x make_chapter_dir.sh
weimingze@mzstudio:~$ ./make_chapter_dir.sh
USAGE:
    ./make_chapter_dir.sh xx
weimingze@mzstudio:~$ echo $?
1
weimingze@mzstudio:~$ ./make_chapter_dir.sh 14
mkdir chapter_14
weimingze@mzstudio:~$ ./make_chapter_dir.sh 15
mkdir chapter_15
weimingze@mzstudio:~$ echo $?
0
weimingze@mzstudio:~$ tree .
.
├── chapter_14
│   ├── code
│   ├── mp4
│   └── video
├── chapter_15
│   ├── code
│   ├── mp4
│   └── video
├── make_chapter_dir.sh
...
└── 音乐

练习:

如下所示:

weimingze@mzstudio:~$ ./exit_demo.sh
USAGE: exit_demo.sh args
weimingze@mzstudio:~$ ./exit_demo.sh aaa
you give 1 argument.
weimingze@mzstudio:~$ ./exit_demo.sh aaa bbb
you give 2 argument.