如何捕获返回非零退出代码的外部程序的输出?

rev*_*ure 3 julia

在朱莉娅0.5之前,我可以跑

diff = readlines(`diff $oldfile $newfile`)
Run Code Online (Sandbox Code Playgroud)

并获得文件之间的差异.

现在Julia抛出异常,因为diff返回退出代码1,所以我不再获得分配给我的变量的输出.

解决这个问题的预期方法是什么?

Isa*_*ton 6

diff = readlines(Cmd(`diff $oldfile $newfile`, ignorestatus=true))
Run Code Online (Sandbox Code Playgroud)

  • 显然我也可以做``diff = readlines(ignorestatus(`diff $ oldfile $ newfile`))``这稍微不那么难看. (2认同)