BASH SHELL中变量分为
1、本地变量(局部变量):仅仅对当前shell进程有效
2、环境变量(全局变量):不仅对当前shell进程有效,对子进程也有效
3、位置变量:类似$1 $2 $@ 表明变量位置的
4、特殊变量:类似$$ $?代表一些特别意义的
变量的显示:echo 变量名称
如图显示变量Name 为Billy
变量的取消:unset 变量名称
取消变量Name后变量不显示了
查看环境变量:env(export,printenv)
查看所有变量(包括环境变量和自定义变量):set
变量转换:export
Export 变量名称
将变量转换为环境变量
变量读取:read
-p:接提示符
-t:接等待的秒数
通过图发现我们输入–t10 的时候过了10秒后没有输入进程停止了
变量声明:declare
-i:将后面的变量定义成整数类型
-a:将后面的变量定义成数组类型
-x:将后面的变量变成环境变量,用法和export一样
-r:将变量设置成readonly类型,既不可以更改内容,也不能重新设置
例一:让变量sum进行加法运算
由于变量类型默认为字符串类型的,如果不指定变量类型,那么100+200+300是一个字符串而不是一个计算的式子。
例二:将sum设置为环境变量
例三:将sum变为只读属性,不可改动
例四:创建数组变量
变量的测试
判断一个变量是否存在
variable=${variable-default}
若变量已存在,则variable=variable
若变量不存在,则variable=default
变量的删除
echo ${path#/*local/bin:}中,#代表从前面开始向右删除,且仅删除最短的那个
echo ${path#/*:} echo ${path##/*:}
#:从开头符合替换文字的“最短的”那一个
##:从开头符合替换文字的“最长的”那一个
%:从尾部符合替换文字的“最短的”那一个
%%:从尾部符合替换文字的“最长的”那一个
总结:
${变量#关键字}:若变量内容从头开始的数据符合关键字,则将符合的最短数据删除
${变量##关键字}:若变量内容从头开始的数据符合关键字,则将符合的最长数据删除
${变量%关键字}:若变量内容从尾开始的数据符合关键字,则将符合的最短数据删除
${变量%%关键字}:若变量内容从尾开始的数据符合关键字,则将符合的最长数据删除
变量的替换
例:将path变量中的sbin替换成大写SBIN
总结:
${变量/旧字符串/新字符串}:
若变量内容符合旧字符串,则第一个旧字符串被新字符串替换
${变量//旧字符串/新字符串}:
若变量内容符合旧字符串,则所有的旧字符串被新字符串替换
转载于:https://blog.51cto.com/qq112487983/1394992