快捷取目录名称-dirname

1,获取当前位置的上一级目录的全路径

]# pathname=/henan/test01/b
]# echo $(dirname $pathname)
/henan/test01
]# echo ${pathname%/*}
/henan/test01

]# a=/henan/
]# echo $(dirname $a)
/
]# echo ${a%/*}
/henan

]# a=/henan/test01/b
]# dirname $a
/henan/test01

遵循从最左边最大匹配原则,来获取文件名称
]# a=/henan/test01/b/ljxc_case_annex.service
]# echo $a
/henan/test01/b/ljxc_case_annex.service
]# echo ${a##*/}             ******最大匹配原则,来获取全路径下的文件名称
ljxc_case_annex.service

]# a=/henan/test01/b/file.tar.gz
]# echo $a
/henan/test01/b/file.tar.gz
]# echo ${a##*.}             ******截取最大匹配,获得gz
gz
]# echo ${a#*.}              ******截取最小匹配,获得tar.gz
tar.gz

遵循从最右边匹配原则,来获取文件名称(或目录全路径)
%(最小匹配)
]# echo $a
/henan/test01/b/file.tar.gz
]# echo ${a%/*}
/henan/test01/b
]# echo ${a%/b*}
/henan/test01
%%(最大匹配)
]# echo ${a%%.*}
/henan/test01/b/file


basename
获取全路径下的文件名称
]# echo $a
/henan/test01/b/file.tar.gz
]# echo $(basename $a)
file.tar.gz
]# echo $(basename $a .gz)
file.tar


变量扩展
${var%pattern}      去掉最小匹配的后缀   echo ${PWD%/*}   显示当前的父目录路径
${var%%pattern}     去掉最大匹配的后缀
${var#pattern}      去掉最小匹配的前缀   
${var##pattern}     去掉最大匹配的前缀   echo ${PWD##*/}  显示当前目录名称
${#var}             打印变量字符个数

```bash
]# a=12121
]# echo ${#a}
5

变量替换
${var:-word} 如果变量var已经设置且非空,结果为var的值,否则结果为word
${var:=word} 如果变量var已经设置且非空,结果为var的值,否则设置var为word

]# a=12121
]# echo ${a:-word}
12121
]# echo ${a:-henan}
henan

]# a=
]# echo ${a:-henan}
henan

如果a值为空,即将值赋值为a
]# echo $a

]# echo ${a:=henan}
henan
]# echo $a
henan


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值