Код выхода "1" в команде diff, несмотря на получение вывода

user@mbp$ diff --suppress-common-lines -y file1.txt file2.txt

Некоторый вывод

user@mbp$ echo $? 

1 

user@mbp$

Мне любопытно, почему он выдает код выхода 1, а 0, если он дает мне то, что мне нужно?

Я понимаю, что это скорее оболочка в общем вопросе, нежели убунту.

2 ответа

Решение

Быстрое чтение страниц руководства diff показало мне, что коды выхода отличаются от того, что я думал.

Код выхода 1 = различия не найдены.

Да, я также столкнулся с той же проблемой, и код выхода, когда есть разница, равен 1. В моем сценарии я использовал это в сценарии, где я буду выводить разницу, что будет легко, если мне понадобится устранить неполадки, когда есть провал.

Поэтому, чтобы избежать сбоя сценария из-за вышеуказанной ошибки, я использовал команду в приведенном ниже формате, чтобы избежать сбоя: diff file1.tst file2.tst || истинный

Таким образом, команда будет выполнена, и, поскольку она была объединена с помощью ИЛИ с true, код выхода будет равен 0, и сценарий продолжит работу без выхода.

Надеюсь, поможет!!!

Другие вопросы по тегам