
在Shell脚本中,if-else语句用于条件判断。以下是一个基本的 if-else 语句的语法和示例:
基本语法
if [ 条件 ]; then # 当条件为真时执行的命令 elif [ 其他条件 ]; then # 当其他条件为真时执行的命令(可选) else # 当所有条件都不为真时执行的命令(可选) fi注意事项
- [ 条件 ] 中的空格很重要,[ 和条件之间以及条件和 ] 之间都必须有空格。
- 可以使用 test 命令代替方括号进行条件测试,例如 if test 条件; then ...。
- elif 部分是可选的,可以有多个 elif 用于检查更多的条件。
- else 部分也是可选的。
- 条件通常包括文件测试、字符串比较和数字比较等。
示例
文件存在性检查
#!/bin/bash FILE="example.txt" if [ -e "$FILE" ]; then echo "文件 $FILE 存在。" else echo "文件 $FILE 不存在。" fi字符串比较
#!/bin/bash STR="hello" if [ "$STR" = "hello" ]; then echo "字符串是 hello。" else echo "字符串不是 hello。" fi数字比较
#!/bin/bash NUM=10 if [ $NUM -gt 5 ]; then echo "数字大于5。" elif [ $NUM -eq 5 ]; then echo "数字等于5。" else echo "数字小于5。" fi使用逻辑运算符
你也可以在条件中使用逻辑运算符,如 -a (AND) 和 -o (OR):
#!/bin/bash NUM1=10 NUM2=20 if [ $NUM1 -gt 5 ] && [ $NUM2 -lt 25 ]; then echo "两个条件都满足。" else echo "至少有一个条件不满足。" fi注意:在某些Shell环境中(比如Bash),你可以使用双括号 [[ ]] 来替代单括号 [ ],这样可以获得更强大的功能和更好的可读性,并且不需要对变量进行额外的引号处理。
#!/bin/bash NUM1=10 NUM2=20 if [[ $NUM1 -gt 5 && $NUM2 -lt 25 ]]; then echo "两个条件都满足。" else echo "至少有一个条件不满足。" fi希望这些示例能帮助你理解如何在Shell脚本中使用 if-else 语句!
