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

时间:2015-01-31 03:15:46

标签: linux bash shell

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

local base=${1##*/}

是什么,

${1##*/} 

得到解决?

1 个答案:

答案 0 :(得分:7)

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

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

将打印

qux

的情况下
${1##*/}

它将从*/中删除与$1匹配的最长前缀,这是传递给脚本/函数的第一个参数。

从本质上讲,这是一个穷人的$(basename "$1")