DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 542 评论 :: 1615万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

一、定义变量
variableName="value"
注意:变量名和等号之间不能有空格,这和编程语言都不一样。

同时,变量名的命名须遵循如下规则:

首个字符必须为字母(a-z,A-Z)。
中间不能有空格,可以使用下划线(_)。
不能使用标点符号。
不能使用bash里的关键字(可用help命令查看保留关键字)。
已定义的变量,可以被重新定义。

variableName="good"
注意:第二次赋值的时候不能写$variableName=“good”,使用变量的时候才加美元符($)。

二、变量的引用
格式:$variableName

变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况: 

for action in Reading Writing Changing
do
    echo "I am good at ${action}Book"
done
如果不给action变量加花括号,写成echo "I am good at $actionBook",解释器就会把$actionBook当成一个变量(其值为空)

代码执行结果就不是我们期望的样子了。推荐给所有变量加上花括号,这是个好的编程习惯。

接下来介绍两个命令:

export命令:将使系统在创建每一个新的shell时定义这个变量的一个拷贝。这个过程称之为变量输出。
source命令:使Shell读入指定的Shell程序文件并依次执行文件中的所有语句
原理:

执行脚本时是在一个子shell环境运行的,脚本执行完后该子shell自动退出;
一个shell中的系统环境变量才会被复制到子 shell中(用export定义的变量);
一个shell中的系统环境变量只对该shell或者它的子shell有效,该shell结束时变量消失 (并不能返回到父shell中)。
不用export定义的变量只对该shell有效,对子shell也是无效的。
通常把环境变量放在开发板的/etc/profile文件里面

export log=4
在其他脚本中直接引用,前面加上环境变量路径  source /etc/profile

可以直接在命令行输入export log=4进行修改

三、符号$后的括号区别
(1)${a} 变量a的值, 在不引起歧义的情况下可以省略大括号。

(2)$(cmd) 命令替换,和`cmd`效果相同,结果为shell命令cmd的输出,过某些Shell版本不支持$()形式的命令替换, 如tcsh。

(3)$((expression)) 和`exprexpression`效果相同, 计算数学表达式exp的数值, 其中exp只要符合C语言的运算规则即可, 甚至三目运算符和逻辑表达式都可以计算。

posted on   DoubleLi  阅读(1019)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2019-01-10 WINDOWS和linux下stdcall
2019-01-10 实现单实例的应用程序
2019-01-10 Boost:shared_memory_object --- 共享内存
2019-01-10 Windows进程单实例运行
2019-01-10 boost:进程管理
2019-01-10 实现单实例应用程序的三种方法
2019-01-10 QT中实现应用程序的单例化
点击右上角即可分享
微信分享提示