the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty'
というメッセージを見たくない方々へ
Git bashのMinTTYがアレなのはいつものことですが、
dockerを起動したりワンライナーを書いたり、
Node.jsに標準入力を渡たしたいときに困ることがよくあります。
$ docker run -it alpine echo Hello,World
the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty'
$ echo 'console.log("Hello,world")' | node
stdin is not a tty
解決策
bash自体をwinptyすると幸せになれます。
$ exec winpty bash
$ docker run -it alpine echo Hello,World
Hello,World
$ echo 'console.log("Hello,world")' | node
Hello,world
面倒な人は最初からbashがwinpty付きで起動するように登録しても良いかもしれません。
$ echo 'exec winpty bash' >> ~/.bash_profile
よく調べてないですが、この記事によるとデフォルトでなっていないのにはなにか理由があるみたいですね。
ちなみに.bash_profile
に書く自動起動の設定を.bashrc
に書き込むとbashの呼び出しが再帰して死ぬので気をつけましょう。私は死にました。