require 'shell'
sh = Shell.new
sh.verbose = false
sh.debug = false
print sh.system('date')
预期输出
Wed Nov 10 13:08:09 EST 2021
观测输出
shell(#<Th:0x00007fd016064058 run>): /bin/date
Wed Nov 10 13:08:09 EST 2021
不需要的线路来自Shell::CommandProcessor#notify
经过一些调查,Shell
中似乎存在一个令人困惑的设计缺陷(或功能?(。最初,您似乎应该能够在Shell
的实例上突变verbose
和debug
,但事实证明根notify
方法本身存在于类中,而不是实例中。
因此,实例级别的设置将仅具有有限的效果,因为类方法Shell.notify
将不知道实例设置。
解决方案-改为使用类级别设置:
Shell.verbose = false
Shell.debug = false
输出现在只有:
Wed Nov 10 13:08:09 EST 2021