unix中%符号的用途是什么

时间:2017-03-30 07:38:10

标签: unix echo

Example.sh:

SERVICE="${0##*/}";
SERVICE="${SERVICE%.sh}"
echo $SERVICE

上面的脚本提供了Shellscript名称作为输出。但是,它究竟是如何工作的? 第1行和第2行的目的是什么? 任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

<强> SERVICE = “$ {0 ## * /}”;

${x}其中 x 是一个数字,返回由索引 x 标识的命令行参数值。如果 x 为0,则返回脚本名本身,包括路径。 操作##*/从该值中删除路径。

执行此操作后,SERVICE包含脚本名称+扩展名,但没有路径。

<强> SERVICE = “$ {SERVICE%.SH}”

  

当在模式${variable%substring}中使用百分号(%)时,它将返回变量的内容,并且从变量的后面删除子串的最短时间。

因此,在此操作之后.sh将从${SERVICE}变量中的值中删除。现在SERVICE包含没有路径且没有扩展名的脚本名称。