shell 变量
admin
2023-03-05 18:42:55
0

量基

在 Bash shell 中,每一个变量的值都是字符串,变量赋值时,值都会以字符串的形式存储。也就是说,Bash shell 在默认情况下不会区分变量类型,即使你将整数和小数赋值给变量,它们也会被视为字符串 。


变量名

命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。

中间不能有空格,可以使用下划线(_)。

不能使用标点符号。

不能使用bash里的关键字(可用help命令查看保留关键字)。

除了显式地直接赋值,还可以用语句给变量赋值


使用变量

使用一个定义过的变量,只要在变量名前面加美元符号$即可

推荐给所有变量加上花括号{ },这是个良好的编程习惯。

例:

shell 变量


修改变量值

第二次对变量赋值时不能在变量名前加,只有在使用变量时才能加 ,只有在使用变量时才能加,只有在使用变量时才能加

例:

shell 变量


单引号和双引号的区别

定义变量时,变量的值可以由单引号’ ‘包围,也可以由双引号" "包围

:

shell 变量

以单引号’ '包围变量的值时,单引号里面是什么就输出什么,即使内容中有变量和命令(命令需要反引起来)也会把它们原样输出。这种方式比较适合定义显示纯字符串的情况,即不希望解析变量、命令等的场景。

以双引号" "包围变量的值时,输出时会先解析里面的变量和命令,而不是把双引号中的变量名和命令原样输出。这种方式比较适合字符串中附带有变量和命令并且想将其解析后再输出的变量定义。

只读变量


使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。

shell 变量


变量作用域Scope

Shell变量的作用域(Scope),就是 Shell 变量的有效范围(可以使用的范围)。


Shell 变量的作用域可以分为三种:

有的变量只能在函数内部使用,这叫做局部变量(local variable);

有的变量可以在当前 Shell 进程中使用,这叫做全局变量(global variable);

而有的变量还可以在子进程中使用,这叫做环境变量(environment variable)。


export a这种形式是在定义变量 a 以后再将它导出为环境变量,如果想在定义的同时导出为环境变量,可以写作export a=20。


环境变量也是临时的


创建一个新的Shell窗口时,在次访问该环境变量依旧访问不到。


通过 export 导出的环境变量只对当前 Shell 进程以及所有的子进程有效,如果最顶层的父进程被关闭了,那么环境变量也就随之消失了,其它的进程也就无法使用了,所以说环境变量也是临时的。


命令替换

Shell命令替换是指将命令的输出结果赋值给某个变量。比如,在某个目录中输入 ls 命令可查看当前目录中所有的文件,但如何将输出内容存入某个变量中呢?这就需要使用命令替换了,这也是 Shell 编程中使用非常频繁的功能。


替换方式

Shell 中有两种方式可以完成命令替换,一种是反引号,一种是$()

示例

shell 变量


相关内容

热门资讯

男子给婚外情对象转账22万余元... 男子谭某和妻子梁某在1991年结婚,婚后育有两女。2020年时,谭某结识女子贺某后,二人发生婚外情关...
钧正平:为什么说东京审判还没有... 今年是东京审判开庭80周年,我们在此回顾三个故事。东京审判现场。被偷走的骨灰1948年12月23日午...
国乒男团3比0韩国,晋级世乒赛... 北京时间5月8日,2026伦敦世乒赛男团1/4决赛,国乒男团以总比分3比0战胜韩国队,晋级半决赛。本...
美国公布首批UFO相关政府文件... 美国国防部5月8日公布了首批“与外星人、地外生命、不明空中现象(UAP)以及不明飞行物(UFO)相关...
外交部:日本军国主义侵略罪行罄... 在东京审判开庭80周年之际,《远东国际军事法庭庭审记录·全译本》日前在中国首发。外交部发言人林剑5月...
“一顿海鲜餐被收1800元”游... 5月4日晚,一湖南游客在海南三亚海棠区椰某韵餐饮店吃海鲜餐时,两份海鲜菜品及酒水饮料等被收了1800...
28国组建“矿产北约”围堵中国... 美国拉起军事、安全之外的“新北约”——被称作“矿产版北约”,目标明确:构建排他性战略资源供应体系,刻...
这场圆桌对接会直击新能源车自燃... 5月7日,挪车机器人应用场景供需对接会在成都市民营经济发展促进中心举行。会议聚焦电动汽车自燃处置难题...
驻村工作队倾情帮扶,无人机、无... 极目新闻记者 吴昌华 4月29日,大别山脚下的青云村,一架四旋翼无人机悬停在村委会小院上空,一辆颜色...
从爆炸厂区到58公里外城区,浏... 2026年5月4日16时43分,湖南浏阳华盛烟花制造燃放有限公司生产车间发生爆炸。截至5月8日12时...