Назад | Перейти на главную страницу

Почему эта команда оболочки всегда возвращает 1?

Вот загадка, на которую я не могу ответить (bash).

Это возвращает код выхода 1:

ping $HOSTNAME -c2 -W2 2&>1 > /dev/null

Это возвращает правильный код выхода каждый раз (2, 1 или 0).

ping $HOSTNAME -c2 -W2

Почему первый всегда возвращает 1? Я просто пытаюсь скрыть / выбросить весь вывод команды ping.

Похоже, порядок следует изменить на:

ping "$myHost" -c2 -W2 > /dev/null 2>&1; echo $?
0

Ответил Вот. По сути, первая часть > /dev/null отправляет stdOut в / dev / null, затем вы перенаправляете stdErr на stdOut.