有个shell命令不太懂

sh/bash/dash/ksh/zsh等Shell脚本
回复
caiueo
帖子: 1
注册时间: 2021-09-21 14:26
系统: Windows

有个shell命令不太懂

#1

帖子 caiueo » 2021-09-21 14:31

代码: 全选

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

代码: 全选

sed s,\.sh$,,
看不太懂,求解答一下每一个符号的作用,以及sed的语法什么的,先谢谢了!
头像
astolia
论坛版主
帖子: 6456
注册时间: 2008-09-18 13:11

Re: 有个shell命令不太懂

#2

帖子 astolia » 2021-09-21 15:53

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

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