解析 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 "")
.
在 /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 "")
.