Shell条件语句
来源:互联网 发布:游戏编程语言培训班 编辑:程序博客网 时间:2024/05/18 08:39
if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。Shell 有三种 if ... else 语句:
举个例子:运行结果:执行结果:运行结果:
if ... else 语句也可以写成一行,以命令的方式来运行,像这样:
if ... else 语句也经常与 test 命令结合使用,如下所示:输出:
- if ... fi 语句;
- if ... else ... fi 语句;
- if ... elif ... else ... fi 语句。
1) if ... else 语句
if ... else 语句的语法:if [ expression ]then Statement(s) to be executed if expression is truefi注意:expression 和方括号([ ])之间必须有空格,否则会有语法错误。
举个例子:
- #!/bin/sh
- a=10
- b=20
- if [ $a == $b ]
- then
- echo "a is equal to b"
- fi
- if [ $a != $b ]
- then
- echo "a is not equal to b"
- fi
a is not equal to b
2) if ... else ... fi 语句
举个例子:
- #!/bin/sh
- a=10
- b=20
- if [ $a == $b ]
- then
- echo "a is equal to b"
- else
- echo "a is not equal to b"
- fi
a is not equal to b
3) if ... elif ... fi 语句
举个例子:
- #!/bin/sh
- a=10
- b=20
- if [ $a == $b ]
- then
- echo "a is equal to b"
- elif [ $a -gt $b ]
- then
- echo "a is greater than b"
- elif [ $a -lt $b ]
- then
- echo "a is less than b"
- else
- echo "None of the condition met"
- fi
a is less than b
if ... else 语句也可以写成一行,以命令的方式来运行,像这样:
- if test $[2*3] -eq $[1+5]; then echo 'The two numbers are equal!'; fi;
if ... else 语句也经常与 test 命令结合使用,如下所示:
- num1=$[2*3]
- num2=$[1+5]
- if test $[num1] -eq $[num2]
- then
- echo 'The two numbers are equal!'
- else
- echo 'The two numbers are not equal!'
- fi
The two numbers are equal!test 命令用于检查某个条件是否成立,与方括号([ ])类似。
case 语句匹配一个值或一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下:
下面的脚本提示输入1到4,与每一种模式进行匹配:输入不同的内容,会有不同的结果,例如:
再举一个例子:运行结果:
case 值 in模式1) command1 command2 command3 ;;模式2) command1 command2 command3 ;;*) command1 command2 command3 ;;esaccase工作方式如上所示。取值后面必须为关键字 in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。;; 与其他语言中的 break 类似,意思是跳到整个 case 语句的最后。
下面的脚本提示输入1到4,与每一种模式进行匹配:
- echo 'Input a number between 1 to 4'
- echo 'Your number is:\c'
- read aNum
- case $aNum in
- 1) echo 'You select 1'
- ;;
- 2) echo 'You select 2'
- ;;
- 3) echo 'You select 3'
- ;;
- 4) echo 'You select 4'
- ;;
- *) echo 'You do not select a number between 1 to 4'
- ;;
- esac
Input a number between 1 to 4Your number is:3You select 3
再举一个例子:
- #!/bin/bash
- option="${1}"
- case ${option} in
- -f) FILE="${2}"
- echo "File name is $FILE"
- ;;
- -d) DIR="${2}"
- echo "Dir name is $DIR"
- ;;
- *)
- echo "`basename ${0}`:usage: [-f file] | [-d directory]"
- exit 1 # Command to come out of the program with status 1
- ;;
- esac
$./test.shtest.sh: usage: [ -f filename ] | [ -d directory ]$ ./test.sh -f index.htmFile name is index.htm$ ./test.sh -d unixDir name is unix
0 0
- Linux shell 条件语句
- shell条件语句
- shell 条件语句
- Shell条件测试语句
- Linux Shell条件语句
- shell中的条件语句
- Shell条件语句
- shell编程条件语句
- shell 条件语句
- shell条件嵌套(if条件语句)
- shell条件嵌套(if条件语句)
- shell脚本条件语句编写
- linux shell条件判断语句
- Linux Shell下条件语句:
- linux shell条件判断语句
- linux shell条件判断语句
- shell条件语句的使用
- shell if 条件语句解析
- jQuery对表单表格的操作
- 简单的自我总结
- 算法导论第三版习题7.4
- 公司AppleID的开通
- Android Studio debug使用release的签名
- Shell条件语句
- The nodes should be added to the underlying vendor clusterware before adding them to the CRS cluster
- 60.View the Exhibit and examine the structure of CUSTOMERS table.
- cmd查看电脑SHA1码
- 企业链表模型——业务实体和底层链表算法分离
- infQ——不受限于内存的队列
- AOJ--0525 Osenbei
- 抓包获得东北大学的课程表,考试成绩,啥的东西
- Java线程池《ThreadPoolExecutor中策略的选择与工作队列的选择》