linux变量的设置试验,linux下变量使用和扩展

变量定义

格式:变量名=变量值

注意:1、’‘="两边不能有空格

2、变量值,linux都会认为是字符串,如果有字符有空格,需要用双引号或单引号括起

3、变量值,双引号括起,会解释变量;而单引号不会,只会原样输出

eg:var="hello  world"

变量调用

格式:$变量名 或者 ${变量名}

注意:1、如果变量名后还有其他字符串,需要将变量名用大括号{}括起来

eg:echo $var     输 出  hello world

echo ${var}_green     输出 hello world_green

提高:输出变量值的值,即将变量值作为下一个变量的名字(输出下一个变量的值)

abc_key="hello"

Informix=abc

temp=${Informix}_key

echo ${temp}

echo ${!temp}

export设置环境变量

格式:export   变量名=变量值

注意:export的效力仅及于该次登陆操作,如果希望长久有效,可以将其写在/etc/profile文件中(此文件是系统启动后自动加载的),或者将其写在/home/用户名/.bash_profile文件中(此文件是此用户登陆都自动加载的)。

命令:export  列出当前系统中的环境变量(包括临时的环境变量)

变量取消

格式:unset  变量名         eg:unset var

unset var=      (表示变量存在,但其值是null)

变量扩展

测试变量是否为空

方法1、[  -n $变量名  ]    变量为空,返回true,否则为false

方法2、${#变量名}     获取变量值的长度,为0,变量为空

var=

if [ -n $var ];then

echo "var is null"

else

echo "var is not null"

fi

# 输出 :var is null

echo ${#var}

#输出 :0

取字符串切片

格式1:${变量名:位置起点}

解释:由指定的字符串位置开始,截取字符串到字符串结束的位置

格式2:${变量名:位置起点:截取字符串长度}

解释:由指定的字符串位置开始,截取指定长度的字符串

abc_key="hello"

Informix=abc

temp=${Informix}_key

echo ${temp}

echo ${!temp}

输出 :hello

计算字符串长度

格式1:${#变量名}

格式2:echo ${变量名} | wc -c         统计的是字节数比字符串长度多1(可能是结束符)

格式3:expr length  "${变量名}"

# echo ${#var}

15

# echo ${var} | wc -c

16

# expr length "$var"

15

字符串替换

格式1:${变量/ 样式 / 替换的字符串}   替换第一个与样式匹配的,样式可以包含正则表达式(下面都可以)

格式2:${变量// 样式 / 替换的字符串}   替换全部匹配的

# var="da :: bai :: ni :: hao"

# echo $var

da :: bai :: ni :: hao

# echo ${var/::/_}

da _ bai :: ni :: hao

# echo ${var//::/_}

da _ bai _ ni _ hao

补充:

语法

用途

${变量 /# 样式 / 替换的字符串}

替换第一个,但是从变量值开头首字符开始匹配,不匹配,不替换

${变量 /% 样式 / 替换的字符串}

替换第一个,但是从变量值尾部尾字符开始匹配,不匹配,不替换

# echo ${var}

da :: bai :: ni :: hao

# echo ${var/#da/hh}

hh :: bai :: ni :: hao

# echo ${var/#::/hh}

删除字符串

格式1:${变量 / 样式/}   删除第一个与样式匹配

格式2:${变量 // 样式/}   删除全部匹配的

其实就是字符串替换搁置中替换后的字符串变为空。

语法

用途

${变量 /# 样式/}

删除第一个,但是从变量值开头首字符开始匹配,不匹配,不删除

${变量 /% 样式/}

删除第一个,但是从变量值尾部尾字符开始匹配,不匹配,不删除

# echo ${var}

da :: bai :: ni :: hao

# echo ${var/#::/}

da :: bai :: ni :: hao

# echo ${var/#da/}

:: bai :: ni :: hao

其他

语法

用途

${变量#样式}

与前面对比,删除最短的匹配,首字符不匹配就不删除了

${变量##样式}

与前面对比,删除最长的匹配,首字符不匹配就不删除了

${变量%样式}

与后面对比,删除最短的匹配,首字符不匹配就不删除了

${变量%%样式}

与后面对比,删除最短的匹配,首字符不匹配就不删除了

# var="/home/dxx/test/mypro"

# echo ${var#*/}

home/dxx/test/mypro

# echo ${var##*/}

mypro

# echo ${var#bai*/}

/home/dxx/test/mypro

提取指定变量名

格式:${!开头字符串@} 或者 ${!开头字符串*}

把所有一指定字符串开头的变量名列出

filename="ntupdate"

dir="adsf"

dir_file="12313"

echo ${!di@}

输出:dir dir_file

取命令参数

语法

解释

$0

命令名字

$1-$n

第一个到第n个的参数

$*

所有的位置参数

$#

位置参数的个数

$?

上一个命令执行的结果    0 成功,非0有误

$$

目前的进程编号

${@:起点}

由起点开始,取得后面的位置参数

${@:起点:个数}

由起点开始,取得后面指定个数的位置参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值