appname=`basename $0 | sed s,\.sh$,,`
这行代码的作用是获取脚本文件的名称并去掉 .sh
的后缀,然后将结果保存到 appname
变量中。
-
basename $0
:basename 命令
会返回给定路径的基本文件名部分$0
是一个特殊变量,代表了当前脚本的名称。
-
sed s,\.sh$,,
:sed
是一个流编辑器,这里使用了正则表达式替换的功能,将匹配到的.sh
替换为空字符串
,即去掉.sh
后缀。s
: 表示替换操作的开始。,
: 是替换操作符中的分隔符,可以用其他字符代替,一般用,
是为了避免和路径中的/
冲突。\.sh$
: 是一个正则表达式,具体含义如下:\.sh
: 匹配.sh
字符串,.
是正则表达式中的特殊字符,需要使用\
进行转义,以匹配实际的.
字符。$
: 表示匹配字符串的结尾。空字符串
: 替换后的内容为空,即将匹配到的.sh
替换为空字符串,相当于去掉了 .sh 后缀。,
: 是替换操作符中的分隔符,与开始时的分隔符一致。- `,: 替换操作的结束。