Ruby 自定义脚本中的git push命令-如何安静地执行?

Ruby 自定义脚本中的git push命令-如何安静地执行?,ruby,git,bash,Ruby,Git,Bash,在Ruby脚本中,我有一组git命令。我想阻止git push的输出显示在控制台中(没有输出或写入amp文件) 当我在脚本中使用步骤时,此输出将插入到当前步骤报告流中。。。搞砸了。我应该如何抑制该输出 更新 我正在运行一个命令集,我只想检测整个命令集的成功或失败 %x[ cd "#{@project_path}" git init 2> /dev/null cp "#{@dockerfile_template}" "#{@project_path}" git add --all 2>

在Ruby脚本中,我有一组git命令。我想阻止
git push
的输出显示在控制台中(没有输出或写入amp文件)

当我在脚本中使用步骤时,此输出将插入到当前步骤报告流中。。。搞砸了。我应该如何抑制该输出

更新

我正在运行一个命令集,我只想检测整个命令集的成功或失败

%x[ 
cd "#{@project_path}"
git init 2> /dev/null
cp "#{@dockerfile_template}" "#{@project_path}"
git add --all 2> /dev/null
git commit -m "first commit" 2> /dev/null
git remote add origin "#{@project_repository}" 2> /dev/null
git push -u origin master 2> /dev/null
]

if $?.success?

尝试重定向到/dev/null。即,使用以下命令:

    git push origin master > /dev/null
或者可能(如果将输出获取到stderr):


尝试重定向到/dev/null。即,使用以下命令:

    git push origin master > /dev/null
或者可能(如果将输出获取到stderr):


您还可以将stdout和stderr组合到/dev/null

git push origin master > /dev/null 2>&1

但请注意,如果出现错误,您将无法看到它。

您还可以将stdout和stderr组合到/dev/null

git push origin master > /dev/null 2>&1

但是请注意,如果出现错误,您将无法看到它。

也许您希望脚本仅在成功的情况下安静地运行git push?那你可以试试这个

Dir.chdir "/path/to/repo" do
  output=`git push origin master 2>&1`
  ret=$?.exitstatus
  if (ret != 0) then
    puts output
  end
end

也许您希望脚本只在成功的情况下安静地运行git push?那你可以试试这个

Dir.chdir "/path/to/repo" do
  output=`git push origin master 2>&1`
  ret=$?.exitstatus
  if (ret != 0) then
    puts output
  end
end

谢谢你的建议。。。我对命令集中任何错误的细节不感兴趣,只是想知道运行该集时是否有任何错误,(参见更新的问题..它会得到吗?我从来没有用ruby编程过,但是
$?
会保存上一个命令的结果,然后测试它。如果它不等于零,则意味着发生了某种错误…希望这有助于感谢我现在所做的…稍后将测试所有类型的错误感谢你的建议…我不是。)I don’我对命令集中任何错误的详细信息不感兴趣,只是想知道运行该命令集中是否有任何错误,(参见更新的问题..它会得到它吗?我从来没有用ruby编程过,但是
$?
将保存上一个命令的结果,然后测试它。如果它不等于零,则意味着发生了某种错误…希望这有助于感谢我现在所做的…稍后将测试所有类型的错误。)