我正在看别人写的剧本。有几个变量集包括另一个脚本,它通过变量插值执行为./${SCRIPT##*/}
。我知道通常只需使用${SCRIPT}
即可完成此操作。 ##*/
之后的SCRIPT
是什么?
答案 0 :(得分:2)
$ {var ## Pattern}从$ var中删除$ Pattern中最长的部分 匹配$ var。
的前端
在这个特定示例中,它贪婪地删除了模式*/
,这将删除SCRIPT
中存储的字符串的所有部分,包括最后一个/
。
请考虑以下示例。
SCRIPT=/tmp/hiefe.txt
echo ./${SCRIPT##*/}
输出:
./hiefe.txt
答案 1 :(得分:1)
$ {var ## Pattern}从$ var中删除$ pattern中与$ var前端匹配的最长部分。
所以是的,它基本上返回了最终/
后与./
联系的路径的剩余部分。例如:
>> SCRIPT=/test/set/of/path.text;echo ./${SCRIPT##*/}
./path.text