一、定义变量
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语言的运算规则即可, 甚至三目运算符和逻辑表达式都可以计算。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源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中实现应用程序的单例化