嗨,伙计们,我正在尝试使用 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}`
这为您处理报价和一切