問題
wsl2のwhileループの中でWindowsのコマンド(.exe
)を実行すると表示が崩れる。
$ seq 10 | while read i; do ipconfig.exe &>/dev/null; echo $i; done
1
期待した結果が得られない。
ipconfig.exe
以外の.exe
のコマンドでも同様。
wsl1ではこの問題は発生しない。
原因
(恐らく).exe
が標準入力を拾っている。
解決策
.exe
に</dev/null
を付ける。
ipconfig.exe </dev/null
$ seq 10 | while read i; do ipconfig.exe </dev/null &>/dev/null; echo $i; done
1
2
3
4
5
6
7
8
9
10