嵌入式系统开发小白学习笔记(9)

上期回顾

嵌入式开发小白学习笔记(8)

嵌入式系统开发工具(接上期)

shell变量类型

(四)变量表达式

1、test时shell程序中的一个表达式,通常用在流程控制for、while、until、if等结构中,用test命令判断文件的存在与性质,变量的相互关系
语法:test<表达式>
如果<表达式>成立,test返回0,反之返回一个非0值。
2、字符串比较(比较的是长度)
(1)-z<字符串>判断字符串长度是否等于0,若等于0则返回0。
(2)-n<字符串>判断字符串长度是否大于0,若大于0则返回0。
(3)<字符串1>=<字符串2>判断两个字符串是否相同,相同则为是返回0,等号两边要有空格判断使用==.
在这里插入图片描述
(4)<字符串1>!=<字符串2>判断两个字符串是否相同,不同则为是,返回0.
3、两个数值的比较
逻辑操作,可以进行and/or,与其他条件联合使用
文件操作,例如文件是否存在文件的状态等
4、数字比较(比较的是大小,符合条件返回0)
<数值表达式1> <算符> <数值表达式2>(算符两边要有空格)
(1)<字符串> -eq <字符串>判断两者是否相等,相等则为是,返回0.
(2)<字符串> -ne <字符串>判断两者是否不等,不等则为是,返回0
(3)<字符串> -lt <字符串>判断前者是否小于后者,小于则为是,返回0
(4)<字符串> -le <字符串>判断前者是否小于等于后者,小于等于则为是,返回0
(5)<字符串> -gt <字符串>判断前者是否大于后者,大于则为是,返回0
(6)<字符串> -ge <字符串>判断前者是否大于等于后者,大于或等于则为是,返回0
在这里插入图片描述

5、文件操作
文件测试表达式是为了测试文件操作逻辑
(1)-e:对象是否存在,存在返回值为0.
(2)-d:对象存在且为目录,则返回值为0.
(3)-f:对象存在且为文件,则返回值为0.
(4)-L:对象存在且为符号连接,则返回值为0.
(5)-r:对象存在且可读,则返回值为0.
(6)-s:对象存在且长度非0,则返回值为0
(7)-w:对象存在且可写,则返回值为0.
(8)-x:对象存在且可执行,则返回值为0.
(9)!:测试条件的否定。(与上述的符号用空格隔开)
在这里插入图片描述
6、逻辑测试
常用于逻辑测试<表达式>有:
(1)!<表达式>:<表达式>不成立
(2)<表达式1> -a <表达式2>:<表达式1>与<表达式2>同时成立
(3)<表达式> -o <表达式2>:<表达式1>或<表达式>成立

(五)shell语句流程控制语句

1、条件控制:if、case结构
(一)if条件语句
语法:
if<判别令>;
then{命令清单1}
then{命令清单2} //else语句可以省略
fi
在这里插入图片描述
(1)[]、=、-o两边也要有空格,=也可以用==(=作为赋值符号不可以写成==)
(2)$ANSWER ,N两边写不写引号无所谓
(3)

注意:
判别令通常是test<表达式>,如果只写表达式,则用中括号括起来(中括号两边要有空格)
如果<判别令>返回0(对于test命令来说,就是其后的表达式成立),则将执行then后的命令清单;反之,则执行else后的命令。

(二)case条件语句
(1)case条件选择为用户提供了多个根据字符串的值从多个选项中选项一个项。
(2)语法
case<变量>in
<字符串1>){<命令清单1>};;

<字符串n>){<命令清单2>};;
*){其他命令};;
esac

在case运算式中也可以使用shell的通配符("",“?”,“[]”)
通常“
”作为case命令的最后运算式以便在前面找不到任何相应的匹配项时,执行"其他命令"的命令

在这里插入图片描述

2、循环控制:for、while、until等结构
(一)for循环语句
(1)语法
for <循环变量> [in <循环变量取值集>]
do <命令清单>
done
(2)注意:
如果for语句的后半部分被省略,则默认的<循环变量取值集>就是命令行参数集
如果命令清单有多余的命令,系统会依次执行。
在这里插入图片描述

Tips:
(1)在shell中,条件判断语句可以使用if条件语句和case条件语句,case语句的选项比较多。
(2)shell语句中的分号
分号是多个个语句之间的分隔符,当只有一个语句的时候,末尾无需分号,最后一个语句后面也无需分号。

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值