bash脚本中$ {0%/ *}的含义是什么?
我想了解一个测试脚本,其中包括以下部分:
SCRIPT_PATH=${0%/*}
if [ "$0" != "$SCRIPT_PATH" ] && [ "$SCRIPT_PATH" != "" ]; then
cd $SCRIPT_PATH
fi
${0%/*}
代表什么? 谢谢
它被称为Parameter Expansion
。 看看这个页面和网站的其他部分。
${0%/*}
所做的是,它从参数0末尾删除字符串/*
后缀后扩展参数0(它是调用脚本的路径)中包含的值。
所以, $0
和${0}
是一样的,就像任何其他的参数一样,例如。 $1
,您可以写为${1}
。 正如我所说的$0
是特殊的,因为它不是一个真正的参数,它总是在那里,并代表脚本的名称。 参数扩展在{
}
- 大括号内起作用, %
是一种参数扩展。
%/*
最后一次出现的匹配/
并删除任何东西( *
意味着什么),该字符之后。 看看这个简单的例子:
$ var="foo/bar/baz"
$ echo "$var"
foo/bar/baz
$ echo "${var}"
foo/bar/baz
$ echo "${var%/*}"
foo/bar
链接地址: http://www.djcxy.com/p/9725.html
上一篇: What is the meaning of ${0%/*} in a bash script?
下一篇: Get the name of the directory where a script is executed