Example.sh:
SERVICE="${0##*/}";
SERVICE="${SERVICE%.sh}"
echo $SERVICE
上面的脚本提供了Shellscript名称作为输出。但是,它究竟是如何工作的? 第1行和第2行的目的是什么? 任何人都可以帮助我吗?
答案 0 :(得分:0)
<强> SERVICE = “$ {0 ## * /}”; 强>
${x}
其中 x 是一个数字,返回由索引 x 标识的命令行参数值。如果 x 为0,则返回脚本名本身,包括路径。
操作##*/
从该值中删除路径。
执行此操作后,SERVICE
包含脚本名称+扩展名,但没有路径。
<强> SERVICE = “$ {SERVICE%.SH}”强>
当在模式
${variable%substring}
中使用百分号(%)时,它将返回变量的内容,并且从变量的后面删除子串的最短时间。
因此,在此操作之后.sh
将从${SERVICE}
变量中的值中删除。现在SERVICE
包含没有路径且没有扩展名的脚本名称。