首页 > 编程笔记

Shell if then语句用法

许多程序要求对 Shell 脚本中的命令增加一些逻辑流程控制,但有些命令会根据条件使脚本跳过这些命令,这样的命令通常称为“结构化命令”。

结构化命令会允许改变程序执行的顺序。在 Bash Shell 中有许多的结构化命令,本节给大家介绍 if then 语句的用法。

if-then 语句是最基本的结构化命令。if-then 的基本格式如下:

if command
then
    commands
fi

或者

if command; then
    commands
fi

Bash Shell 的 if 语句会运行 if 后面的命令。如果该命令的退出状态码是 0(该命令成功运行),位于 then 部分的命令就会被执行。如果该命令的退出状态码是其他值,then 部分的命令就不会被执行,Bash Shell 会继续执行脚本中的下一个命令。if 语句用来表示 if-then 语句到此结束。

【例 1】if-then语句。
首先使用 vim 编辑器打开脚本文件 test.sh,输入 i 命令进入插入模式,输入如下命令:

#!/bin/bash

if pwd
then
    echo "hello"
fi

使用 sh(Bash)进程来执行脚本文件,输出结果为:

[root@bogon ~]# sh test.sh
/root
hello

注意,在 then 语句的部分,可以使用不止一条命令,像在脚本中的其他地方一样在这里列出多条命令。Bash Shell 会将这些命令当成一个块,如果 if 语句行的命令的退出状态值为 0,所有的命令都会被执行;如果 if 语句行的命令的退出状态值不为 0,所有的命令都会被跳过。

if-then-else 语句在语句中提供了另外一组命令。当 if 语句中的命令返回退出状态码为 0 时,then 部分中的命令会被执行;当 if 语句中的命令返回非零退出状态码时,Bash Shell 也会执行 else 部分中的命令。

if-then-else 语句语法格式如下:

if command
then
    commands
else
    commands
fi

优秀文章