查看: 1883|回复: 0
打印 上一主题 下一主题

[经验] 飞凌嵌入式ElfBoard ELF 1板卡-shell脚本编写之变量

[复制链接]

该用户从未签到

跳转到指定楼层
楼主
发表于 2024-8-29 11:15:48 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
分享到:
变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据。脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell变量也遵循这个规则。每一个变量的值都是以字符串的形式存储。
1、变量名的定义
变量名定义需要注意以下几点:
变量名由数字、字母、下划线组成;
必须以字母或者下划线开头;
不能使用Shell里的关键字(如,$,#,?等,通过help命令可以查看保留关键字)。
2、变量的赋值
赋值“=”左右不能有空格。
变量值可以加单引号、双引号、或者不加引号, 如果变量值包含了空格、或tab等空白符号,那么就必须使用引号包围起来。其中加单引号的变量值,输出时,直接将变量值当做一串字符串输出,不关心变量值中是否存在变量和命令。而加双引号的变量值,输出时会先解析里面的变量和命令,按照解析后的结果进行输出。
变量值可以是一个命令执行的结果,使用反引号和$()的方式,可以将命令执行结果赋值给变量。
3、变量的使用
使用一个定义过的变量,只要在变量名前面加美元符号$即可,变量名可以使用{ }包围起来,也可不使用{ }。
举例说明(为了方便,我们直接在shell环境终端进行举例演示变量的使用,不再写入脚本,其与在脚本中使用方法一致)。
1)变量值无空格
var=value
使用echo输出变量var,echo $var或者echo ${var},如图:

也可以加上单引号或者双引号:
var='value'或var="value":

2)变量值有空格
var='value 0'或var="value 0":

3)将命令执行结果赋值给变量
首先建立一个test.txt文件,输入内容为“my test!!”:

使用反引号方式包括命令“cat test.txt”,将test.txt中内容赋予变量var:

使用$()方式赋值给var:

4)变量中引用变量或者命令的情况
var0=123;
使用单引号定义var1的值:var1='var0 =${var0}';
使用双引号定义var1的值:var2="var0 =${var0}";
看执行结果:

可以看出var1的值直接当做字符串输出,而var2的值,经过解析变量中的变量var0之后进行才输出。
4、变量的修改
变量的修改就比较简单了,直接给定义后的变量二次赋值就可以了。

5、变量的删除
删除一个定义过得变量,使用unset命令。

6、将变量设置为只读变量
也可以将变量设置为只读模式,不允许修改,使用readonly命令。设置为只读变量后,不能用unset删除变量。如果还是用该变量,需要重启新的终端操作。

可以看到使用readonly命令之后,在此修改var变量,没有修改成功。

回复

举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 4/5 下一条

【预约参会三重礼】2025 瑞萨电子工业以太网技术日
2025瑞萨电子工业以太网技术日聚焦工业4.0核心需求,为工程师与企业决策者提供实时通信技术最佳解决方案,通过案例剖析、现场演示、动手实践,全方位解读瑞萨电子最新实时通信技术解决方案,洞察行业发展趋势,助力企业高效开发更具竞争力工业以太网产品。

查看 »



手机版|小黑屋|与非网

GMT+8, 2025-4-30 06:50 , Processed in 0.113831 second(s), 18 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.5

Copyright © 2001-2024, Tencent Cloud.