如何在单引号中使用单引号从 ruby 控制器运行 bash 脚本



嗨,伙计们,我正在尝试使用 bash 命令读取压缩文件夹。我对它完全陌生。我无法在双引号中使用双引号,这会导致执行此命令时出错。

captured_content = capture_stdout do
      system("tar -tf 3531622.tar.xz | awk -F'/' '{ for (i=1;i<4;i++) print "/"$i ; print "n"}' ORS='' |grep "/"|uniq")
    end

任何帮助将不胜感激,请不要对我确实需要帮助的问题投反对票。

您可以使用反引号运算符来分隔命令 - 它将返回命令的结果。例如:

output = `ls /usr/`
=> "X11nX11R6nadicnbinnlibn"
puts output
X11
X11R6
adic
bin
lib

更好的方法是使用shellwords。

require "shellwords"
args = ["ls", "/usr/"]
output = `#{args.shelljoin}`

这为您处理报价和一切

相关内容

  • 没有找到相关文章

最新更新