Код выхода "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, и сценарий продолжит работу без выхода.
Надеюсь, поможет!!!