Linux学习-$(),${}

$()

$()和反引号``都是用来做命令替换用的,对一串命令重新开一个子shell进行执行
[root@zabbix scripts]# echo "the last sunday is $(date -d"last monday" +%Y-%m-%d)"
the last sunday is 2021-03-15
  • $()的优势
    在很多情况下反引号``和单引号’'容易混淆

  • ( ) 不 足 ‘ ‘ 基 本 上 可 在 全 部 的 u n i x s h e l l 中 使 用 , 若 写 成 s h e l l s c r i p t 移 植 性 比 较 高 。 而 ( )不足 ` `基本上可在全部的unix shell中使用,若写成shell script移植性比较高。而 ()unixshell使shellscript( )并不是每一种shell都能使用。

${}

${ }用来作变量替换
一般情况下,$var与${var}作用相同。但是用${ }会比较精确的界定变量名称的范围
[root@zabbix scripts]# name=tye
[root@zabbix scripts]# echo ${name}
tye
[root@zabbix scripts]# echo $name
tye
#下面例子中$AB则系统会认识是AB变量,而不是$A的值和B的值的结合
[root@zabbix scripts]# A=B
[root@zabbix scripts]# echo $AB

[root@zabbix scripts]# echo ${A}B
BB
${}特殊用法
#定义一个变量files
[root@zabbix scripts]# files=/root/scripts/copycmd.sh 
#获取第一个/右边的所有字符串信息
[root@zabbix scripts]# echo ${files#*/}
root/scripts/copycmd.sh
#获取最后一个/右边的字符串信息
[root@zabbix scripts]# echo ${files##*/}
copycmd.sh
#获取最后一个/左边的字符串信息
[root@zabbix scripts]# echo ${files%/*}
/root/scripts
#获取第一个/左边的字符串信息
[root@zabbix scripts]# echo ${files%%/*}
(空值)
#注:%-去除右边获取左边的字符串信息,#-去除左边获取右边的字符串信息
#提取从第1个字符开始向后取4个字符
[root@zabbix scripts]# echo ${files:1:4}
root
[root@zabbix scripts]# echo ${files:6:7}
scripts
# ${var/dir/path}实现字符串替换,将dir替换为path
[root@zabbix scripts]# echo ${files/copycmd.sh/copylog.txt}
/root/scripts/copylog.txt
# ${var//dir/path}实现字符串替换,将所有dir替换为path
[root@zabbix scripts]# echo ${testpath//path/abc}
/abc1/abc2/abc3/abctest.txt
#获取files的长度,单位为字节
[root@zabbix scripts]# echo ${#files}
24
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值