解析 shell 脚本中的 ${1##*/}

resolve ${1##*/} in shell script

/etc/init.d/functions#_pids_var_run 中(大多数 Linux 发行版中都会有),我看到这样的局部变量初始化,

local base=${1##*/}

是做什么的,

${1##*/} 

下定决心了吗?

在 bash 脚本中,${varname##pattern}varname 中删除匹配 pattern 的最长前缀。例如,

foo=bar/baz/qux
echo "${foo##*/}"

将打印

qux

${1##*/}

它将从 </code> 中删除与 <code>*/ 匹配的最长前缀,这是传递给 script/function 的第一个参数。

本质上是穷人的$(basename "").