我想用空格转义路径,当我像这样直接使用它时效果很好:
$ printf '%q' "/path/to/first dir/dir/"
/path/to/first\ dir/dir/
当我使用变量而不是字符串时,虽然返回的是一个没有空格的字符串:
$ testpath="/path/to/first dir/dir/" && printf '%q' $testpath
/path/to/firstdir/dir/
有没有办法用 printf 和变量来逃避路径中的空白。或者任何其他不使用 awk/sed/regex 的简单解决方案?
您需要引用变量
了解如何在 shell 中正确引用,这非常重要: