徒然日記
2007年4月8日(日) [長年日記]
■ Rubyのstty -echo
ruby programでteminalからpasswordを入力させる場合、terminalにecho backしないようにする方法の作法ってあるのだろうか?
安直なのはsystem("stty -echo")だけど、systemって微妙…と思って検索したら、まつもとさんの投稿が。
termiosは使いかたはわかったけど、標準ライブラリじゃないのでダメ。
fcntlは使いかたもわからなけりゃ、どの定数になんの値を入れればいいかもわからん。
やはりsystem使うしかないのかしら?
■ curses
curses moduleを使えばできるみたい。
1 require 'curses' 2 3 Curses::init_screen 4 Curses::stdscr.addstr("Enter Password: ") 5 Curses::noecho 6 password = Curses::getstr 7 Curses::echo 8 Curses::close_screen
でも、これだと新しい画面になって微妙だ。