인터페이스가 연결되어 있는지 확인하는 간단한 스크립트가 있습니다.
connected=$(ping -I $1 -qc 1 8.8.8.8 \
&& echo "connected" \
|| echo "not connected")
echo "$connected" | tail -n1
나는 단순히 "연결됨" 또는 "연결되지 않음"을 반환해야 한다고 예상했습니다. 실제로 스크립트를 사용할 때 항상 출력 전에 경고가 표시됩니다.
ping: Warning: source address might be selected on device other than enp0s25.
not connected
여기서 경고는 어떻게 되나요? 서브셸의 일부가 아니어야 합니까?
답변1
ping
경고는 표준 오류 로 전송되지만 포착되지는 않습니다. 무시하려면 /dev/null
명시적으로 다음으로 리디렉션하세요.
connected=$(ping -I $1 -qc 1 8.8.8.8 2>/dev/null \
&& echo "connected" \
|| echo "not connected")
echo "$connected" | tail -n1