saw*_*awa 1 ruby escape-characters
当我需要在 emacs 中以编程方式打开名称中有空格的文件时,我该怎么做?我已经在 Ruby 脚本中尝试过这些命令,在反引号内或popen(…):
emacs "foo bar"
Run Code Online (Sandbox Code Playgroud)
或者
emacs foo\ bar
Run Code Online (Sandbox Code Playgroud)
打开两个名为fooand 的文件bar,但我想打开一个名为foo bar.
您在引用时遇到问题,因为您使用传递给 shell 的命令行调用 popen。Ruby 的字符串解析器要么吃双引号,要么吃反斜杠。您可以使用一个字符串数组调用 popen,这将绕过 shell,或者您可以编写emacs foo\\ bar哪个将转义您希望 Ruby 留给 shell 看到的反斜杠。