ruby%{}引用是否有bash等价物?

ruby%{}引用是否有bash等价物?,bash,quote,Bash,Quote,引用包含单引号和双引号且没有变量插值的bash命令参数的最简单方法是什么 在Ruby中,您可以使用%{}、%[]等来引用字符串。在这种情况下,单引号和双引号将被视为字符 我的问题并不完整,这里有进一步的解释: 我问这个问题的原因是因为我经常在命令行中运行ruby和perl代码。由于这些语言广泛使用单引号和双引号以及全局变量,如$1$\等,因此我与bash发生冲突 例如: ls -lat | ruby -p -e '$_ =~ /(\S+)\s+(\S+)\s+(\S+)/; $_ = "'\''

引用包含单引号和双引号且没有变量插值的bash命令参数的最简单方法是什么

在Ruby中,您可以使用%{}、%[]等来引用字符串。在这种情况下,单引号和双引号将被视为字符

我的问题并不完整,这里有进一步的解释:

我问这个问题的原因是因为我经常在命令行中运行ruby和perl代码。由于这些语言广泛使用单引号和双引号以及全局变量,如$1$\等,因此我与bash发生冲突

例如:

ls -lat | ruby -p -e '$_ =~ /(\S+)\s+(\S+)\s+(\S+)/; $_ = "'\''" + ($3 || "") + "'\''" + "\n"'
我在寻找与ruby中的%quoting类似的东西:

ls -lat | ruby -p -e %{$_ =~ /(\S+)\s+(\S+)\s+(\S+)/; $_ = "'" + ($3 || "") + "'" + "\n"}

使用heredoc可能最容易:

read -r arg << \EOF
A string "with" 'quotes'
EOF

read-r arg使用herdeoc可能最容易:

read -r arg << \EOF
A string "with" 'quotes'
EOF

read-r arg因为不需要变量插值,所以可以使用
$'…'
引用(尽管仍然需要转义单引号,因此这可能不符合您的要求):


因为您不需要变量插值,所以可以使用
$'…'
引号(尽管您仍然需要转义单引号,因此这可能不符合您的要求):


没有信心给出答案,但是Bash参考手册中关于引用的部分看起来好像在说“不”:没有信心给出答案,但是Bash参考手册中关于引用的部分看起来好像在说“不”:我不知道这种类型的引用,我现在使用的更好。谢谢。我不知道这种类型的引用,它比我现在使用的更好。谢谢
x=$'String containing \' and "'