我有一个包含以下行的脚本:猛砸路径问题
propFile="${0%/*}/anteater.properties"
- 什么是 “$ {0%/ *}” 是什么意思?
- 此命令给出了脚本的路径 - 但路径中有空格,脚本找不到此文件 - 如何处理它?
我有一个包含以下行的脚本:猛砸路径问题
propFile="${0%/*}/anteater.properties"
%
运算符在变量扩展中删除了给定的匹配后缀模式。因此${0%/*}
采用变量$0
,并在最后删除所有匹配的/*
。这相当于命令dirname
,它在给定路径时返回该路径的父目录。
为了处理bash变量中的空格,只要展开变量(即,无论何时写入$var
),都应该引用它。总之,总是使用"$var"
而不是只有$var
。
考虑在bash手册中阅读shell parameter expansion和variable quoting以了解有关这两个主题的更多信息。
去掉后缀匹配/*
,即最后一个斜线之后的一切,包括斜杠本身。
无论你在哪里使用它(cat "$propFile"
)都会引用它。
引用绝对有效。然而,如果你想直接引用一个带有空格的文件名,你可以用\字符来转义你的空格。 – asf107
@ asf107,如果你想每次都想引用一个存放在变量中的文件名 - 引用它。以防万一。 –