Почему обратная косая черта не возвращает ненулевой код выхода?

Почему обратная косая черта не возвращает ненулевой код выхода?

Если запустить:

 true \ false; echo $?

Я получаю код выхода 0. Кто-нибудь знает, почему это так?

решение1

true \ false

эквивалентно

true ' false'

Это заставляет оболочку запускаться trueс false(включая начальный пробел) в качестве параметра. Реализация, trueкоторую вы используете, игнорирует этот параметр и завершается с нулевым возвращаемым значением.

решение2

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

Связанный контент