处理文件路径中的空格

处理文件路径中的空格

我有这个:

muh_dir=`cd $(dirname "$BASH_SOURCE") && pwd`

是的,我测试了上面的内容(它有反引号),它不能很好地处理 pwd 中的空格。另一方面,这样更好:

muh_dir="$(cd $(dirname "$BASH_SOURCE") && pwd)"

我的问题是 - 这会向我的命令添加 3 个字符,编辑器中的语法会发生变化。第一种方法要好得多..有没有办法用更短的语法来处理空格,或者我只是硬着头皮?

答案1

您的两个代码示例都将失败:

muh_dir=`cd $(dirname "$BASH_SOURCE") && pwd` muh_dir="$(cd $(dirname "$BASH_SOURCE") && pwd)"

您必须添加的最少引号是:

muh_dir=`cd "$(dirname "$BASH_SOURCE")" && pwd`
            ^                         ^             Note the quotes.

但是,请使用$(...)

muh_dir=$(cd "$(dirname "$BASH_SOURCE")" && pwd)

答案2

了解报价,然后使用更多引号™。这确实是您能做的最简单且有效的事情。

顺便说一句,任何代码最重要的属性是它的可维护性。字符数与可维护性的相关性非常弱——将 3 个字符添加到 45 个字符(增加 6.7%)来处理空格甚至不会远程触发我的代码鼻子。

相关内容