分页: 1 / 1

有个shell命令不太懂

发表于 : 2021-09-21 14:31
caiueo

代码: 全选

appname=`basename $0 | sed s,\.sh$,,`
这条命令功能是返回去掉后缀.sh的脚本名,但后面

代码: 全选

sed s,\.sh$,,
看不太懂,求解答一下每一个符号的作用,以及sed的语法什么的,先谢谢了!

Re: 有个shell命令不太懂

发表于 : 2021-09-21 15:53
astolia
s:文本替换命令
,:s命令的参数分隔符,可自定义,一般多用/
\.sh$:s命令的第一个参数,要替换的文本,为正则表达式,表示文本末尾的.sh
s命令的第二个参数为空,表示将第一个参数指定的文本删掉

看不懂正则就去读 https://deerchao.cn/tutorials/regex/regex.htm
想深入学习sed就去找相关书籍或教程来学,网上多的是 https://www.grymoire.com/Unix/Sed.html#uh-1