这两种语法有什么区别?

时间:2015-08-13 12:46:52

标签: ruby

我正在尝试检查.tar.gz文件的脚本。 这是脚本的一部分:

  def tar
    tar_file =  %x( ls -t *.tar.gz | head -1)
    if tar_file.empty?
      critical "No tar.gz found"
    end
    tar_file.chomp
    command = "gunzip -c backup.tar.gz | tar t > /dev/null"
    system(command)
  end

这工作正常,但我不知道我的备份名称所以我需要用变量替换它。在这种情况下,它是我的变量tar_file。 所以它给了我:

command = "gunzip -c #{tar_file} | tar t > /dev/null"

但是当我执行它时,我有tar命令的输出,它没有执行到/ dev / null的重定向。

你知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

\n末尾有一个tar_file,所以我只是调用方法tar_file.chomp!来删除它。