プロセス置換を使用すると、コマンドの出力のすべての行を取得できます。
# Echoes every seconds using process substitution
while read line; do
echo $line
done < <(for i in $(seq 1 10); do echo $i && sleep 1; done)
上記と同じ方法で、「wpa_supplicant」コマンドの stdout 出力を取得し、stderr を破棄します。しかし、画面には何も表示されません!
while read line; do
echo $line
done < <(wpa_supplicant -Dwext -iwlan1 -c${MY_CONFIG_FILE} 2> /dev/null)
プロンプトで同じコマンドを入力すると、正常に出力されることを確認しました。
$ wpa_supplicant -Dwext -iwlan1 -c${MY_CONFIG_FILE} 2> /dev/null
間違いは何ですか?どんな助けでも大歓迎です。