当我使用%x{command}
在Ruby中调用命令时,会捕获标准输出,并在屏幕上显示标准错误。但是我希望两者都被捕获,我也希望在屏幕上同时观看。我怎样才能做到这一点?
%x{command 2>&1 1>&2}
施工似乎无效。
答案 0 :(得分:1)
你的重定向都错了。
2>&1
您要将stderr
重定向到stdout
1>&2
您要将stdout
重定向回stderr
这就是你想要的:
%x{command 2>&1}
请务必致电puts
以从脚本中将输出输出到屏幕。 (因为现在一切都是stdout而不是stderr)
puts %x{command 2>&1}
希望这有帮助。
答案 1 :(得分:0)
2.1.3 :005 > %x{(ls -d /boot 2>&1) | tee /dev/stderr}
/boot
=> "/boot\n"
2.1.3 :006 > %x{(ls /no_such_file 2>&1) | tee /dev/stderr}
ls: cannot access /no_such_file: No such file or directory
=> "ls: cannot access /no_such_file: No such file or directory\n"