Why is this shell command always returning 1?

Here is a shell puzzle I can't answer (bash).

This returns exit code 1:

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

This returns the correct exit code every time (2, 1 or 0).

ping $HOSTNAME -c2 -W2

Why is the first one always returning 1? I'm just trying to hide/throwaway all the output of the ping command.

0
задан 4 May 2018 в 23:56
1 ответ

দেখে মনে হচ্ছে অর্ডারটি সামঞ্জস্য করা উচিত:

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

উত্তর দেওয়া এখানে । মূলত, প্রথম অংশ > / dev / নাল stdOut কে / dev / নাল প্রেরণ করে, তারপরে আপনি stdErr কে stdOut এ পুনরায় রুট করবেন।

1
ответ дан 4 December 2019 в 15:58

Теги

Похожие вопросы