【发布时间】:2012-10-10 02:49:50
【问题描述】:
在没有变量插值的情况下,引用包含单引号和双引号的 bash 命令参数的最简单方法是什么?
在 Ruby 中,您可以使用 %{}、%[] 等来引用字符串。在这种情况下,单引号和双引号将被视为字符。
我的问题并不完整,这里是进一步的解释:
我之所以这么问是因为我经常在命令行运行 ruby 和 perl 代码。由于这些语言广泛使用单引号和双引号以及 $1 $_ 等全局变量。我与 bash 发生冲突。
示例:
ls -lat | ruby -p -e '$_ =~ /(\S+)\s+(\S+)\s+(\S+)/; $_ = "'\''" + ($3 || "") + "'\''" + "\n"'
我正在寻找类似于 ruby 中的 % 引用的东西:
ls -lat | ruby -p -e %{$_ =~ /(\S+)\s+(\S+)\s+(\S+)/; $_ = "'" + ($3 || "") + "'" + "\n"}
【问题讨论】:
-
没有信心给出答案,但 Bash 参考手册中关于引用的部分看起来好像在说不:gnu.org/software/bash/manual/html_node/Quoting.html