Вот загадка, на которую я не могу ответить (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.