codecamp
Bash if语句

if语句在顺序执行代码语句的流程中执行条件性任务。根据设置的条件,判断是否运行一段代码语句。

基础

if语句中,如果判断为true,则执行给定的代码语句进行相关操作。如果判断为false,则略过给定的代码语句不进行相关操作。 基本语法:

if [ expression ];
then
statements
fi

注:
expression 是判断表达式。
statements 是给定的执行语句。

  • 结合&&逻辑运算符使用多个条件:
    if [ expression_1 ] && [ expression_2 ];
    then
    statements
    fi
  • 结合||逻辑运算符使用多个条件:
    if [ expression_1 ] || [ expression_2 ];
    then
    statements
    fi
  • 同时使用&&||逻辑运算符:
    if [[ expression_1 && expression_2 || expression_3 ]];
    then
    statements
    fi

示例:

#!/bin/bash


## TRUE && TRUE
if [ 8 -gt 6 ] && [ 10 -eq 10 ];
then
echo "Conditions are true"
fi


## TRUE && FALSE
if [ "mylife" == "mylife" ] && [ 3 -gt 10 ];
then
echo "Conditions are false"
fi

执行后得到以下结果:

Conditions are true

if 语句选项常用列表

选项 描述
! EXPRESSION 检查EXPRESSION是否为假。
-n STRING 检查STRING的长度是否大于零。
-z STRING 检查STRING的长度是否为零(即为空)
STRING1 == STRING2 检查STRING1是否等于STRING2
STRING1 != STRING2 检查STRING1是否不等于STRING2
INTEGER1 -eq INTEGER2 检查INTEGER1在数值上是否等于INTEGER2
INTEGER1 -gt INTEGER2 检查INTEGER1在数值上是否大于INTEGER2
INTEGER1 -lt INTEGER2 检查INTEGER1在数值上是否小于INTEGER2。
-d FILE 检查FILE是否存在并且它是一个目录。
-e FILE 检查FILE是否存在。
-r FILE 检查FILE是否存在,并授予读取权限。
-s FILE 检查FILE是否存在并且其大小大于零(表示它不为空)。
-w FILE 检查FILE是否存在并授予写权限。
-x FILE 检查FILE是否存在并授予执行权限。

嵌套 if 语句

在 Bash 的实际运用中可能会需要多个 if 语句。这时可能就会出现在一个 if 语句中使用另一个 if 语句的情况,这被称为嵌套 if 语句。 示例:

#!/bin/bash
#Nested if statement


if [ $1 -gt 50 ]
then
  echo "Number is greater than 50."


  if (( $1 % 2 == 0 ))
  then
    echo "and it is an even number."
  fi
fi

执行后得到以下结果:

Number is greater than 50.
and it is an even number.
Bash 基本运算符
Bash if-else语句
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }