O valor de retorno de more
é diferente no OSX e no Linux. Execute isto para ver qual é o valor de retorno em seu sabor do Unix:
more file_that_doesnt_exist; echo $?
No OSX, recebo 1
na falha e 0
no sucesso.
No Ubuntu e RedHat Linux, recebo 0
na falha e 0
no sucesso. Isso parece ser um bug.
Outra alternativa seria usar less
. Parece retornar códigos de saída corretos no Ubuntu Linux.
Ainda outra alternativa seria usar:
{ cat file_that_doesnt_exist || echo nonexistent; } | more
O comando cat
parece retornar os códigos de saída esperados no Linux.