Linux中条件语句

1.条件语句

1.1测试

test 测试文件的表达式是否成立

格式:

格式1:test  条件表达式
格式2:[  条件表达式  ]
注意条件表达式左右两侧与括号一定要有空格!

 之后用$?  来测试是否是否为真

若真,则状态码变量 $? 返回0
若假,则状态码变量 $? 返回1

 1.2比较整数数值

[ 整数1 操作符 整数2 ] 公式

  • -eq:第一个数等于(Equal)第二个数

  • -ne:第一个数不等于(Not Equal)第二个数

  • -gt:第一个数大于(Greater Than)第二个数

  • -lt:第一个数小于(Lesser Than)第二个数

  • -le:第一个数小于或等于(Lesser or Equal)第二个数

  • -ge:第一个数大于或等于(Greater or Equal)第二个数

 1.3比较字符串

常用的测试操作符

  • =:字符串内容相同

  • !=:字符串内容不同,! 号表示相反的意思

  • -z:字符串内容为空

  • -n: 字符是否存在

格式

[ 字符串1 = 字符串2 ] 是否相同

[ 字符串1 != 字符串2 ] 是否不相同

[ -z 字符串 ] 是否为空

[ -n 字符串 ] 字符是否存在

 

 

 1.4逻辑测试

格式1:[ 表达式1 ] 操作符 [ 表达式2 ] ...

格式2:命令1 操作符 命令2 ...

常见条件

  • -a或&&:逻辑与,“而且”的意思全真才为真

  • -o或||:逻辑或,“或者”的意思一真即为真

  • !:逻辑否

1.5双中括号

[[ expression ]] 用法
== 左侧字符串是否和右侧的PATTERN相同
 注意:此表达式用于[[ ]]中,PATTERN为通配符
=~ 左侧字符串是否能够被右侧的正则表达式的PATTERN所匹配
 注意: 此表达式用于[[ ]]中;扩展的正则表达式

()会开启子shell

{ } 不会开启子shell

1.6if语句的结构

if语言共分三个结构:

单分支、双分支、多分支

 

单分支:
if 判断条件;

then   条件为真的分支代码

fi

 

双分支:
if 判断条件; then
 条件为真的分支代码

else
 条件为假的分支代码

fi

 

多分支

if 判断条件1
then
 条件1为真的分支代码

elif 判断条件2
then
 条件2为真的分支代码

elif 判断条件3;then
 条件3为真的分支代码

...
else
 以上条件都为假的分支代码

fi

 

 1.7case语句的结构

case支持glob风格的通配符:

* 任意长度任意字符
? 任意单个字符
[0-9] 指定范围内的任意单个字符
|   或者,如: a|b

命令格式:

case 变量引用 in
PAT1)
 分支1
 ;;
PAT2)
 分支2
 ;;
...
*)
 默认分支
 ;;

 

 

 1.8循环语句

echo命令

echo -n   表示不换行输出
echo -e   表示输出转义符


常用的转义符

选项作用
\r 光标移至行首,并且不换行
\s 当前shell的名称,如bash
\t 插入Tab键,制表符
\n 输出换行
\f 换行,但光标仍停留在原处
\ 表示插入"\"本身转义
\b 表示退格 不显示前一个字符
\c 抑制更多的输出或不换行

 

 

 

 

 

 

 

 

posted @ 2023-08-10 16:11  行走的泡泡  阅读(114)  评论(0)    收藏  举报