2> / dev / nullが機能しないのはなぜですか?

2> / dev / nullが機能しないのはなぜですか?

スクリプトの冒頭で、ユーザーにsudoパスワードを尋ね、残りのスクリプトを実行する前にパスワードが正しいことをテストしたいと思います。

しばらく検索した後、次のテストスクリプトを入手しました。

SUDO_PWD=whatever
sudo -k   # <- So I can test it
echo $SUDO_PWD | sudo -Svp '' 2>/dev/null 
sudo_response=$(SUDO_ASKPASS=/bin/false sudo -A whoami @>/dev/null) 
if [ "$sudo_response" = "root" ]; then 
    echo "sudo" 
else  
    echo "no sudo" 
fi 

ただし、@> / dev / nullリダイレクトを使用しても、両方のメッセージがコンソールに表示されます。なぜ?

ベストアンサー1

出力が望ましくない場合(標準出力やエラーなし)、次のリダイレクトを使用する必要があります。

your_command > /dev/null 2>&1
your_command &> /dev/null

エラーのみを表示し、標準出力を削除します。

your_command > /dev/null

標準出力を表示し、エラーを削除します。

your_command 2> /dev/null

おすすめ記事