我正在编写一个ruby脚本,我正在使用命令
system('git log')
以及一些标记和格式设置首选项,以显示在回购中添加的每个文件的时间,修订ID和文件名。
如何将此命令的结果(即上面列出的每个文件的信息)作为单个字符串,一个用于在repo中添加的每个文件,然后将所有这些字符串放在一个数组中?
当前结果示例:
2016-10-11T22:07:06+01:00 b3d0893: example.txt
2016-10-11T22:06:06+01:00 b3d0893: example1.txt
我希望上面的内容是两个不同的字符串,然后将它们放在一个数组中。
答案 0 :(得分:1)
Kernel#system
只会返回true
或false
,具体取决于通话是否成功。来自呼叫的STDOUT只是输出,因此您无法对其进行任何操作,正如您所发现的那样。
如果切换到使用backticks,则应该从命令中获得带有STDOUT的String
:
output = `git log`
要将该输出字符串拆分为Array
行,请使用String#split
,以便获得类似
output = `git log`
lines = output.split(/\n/)