同じようなオプションをgetche()
に入れたい。どのように私はコマンドラインから単一の文字入力を読むことができますか?シェルスクリプト内の単一文字の読み方
read
コマンドを使用してコマンドを実行できますか? bashで
同じようなオプションをgetche()
に入れたい。どのように私はコマンドラインから単一の文字入力を読むことができますか?シェルスクリプト内の単一文字の読み方
read
コマンドを使用してコマンドを実行できますか? bashで
をあなたは基本的に行うことができます。bashのための
stty raw
REPLY=$(dd bs=1 count=1 2> /dev/null)
stty -raw
、read
はそれを行うことができます:kshので
read -n1 ans
read -n1
作品を
stty raw
モードが働いてからCtrl + Cキーを防止します抜け道を持たずに入力ループに詰め込まれる可能性があります。また、マニュアルページにはstty -raw
が端末を同じ状態に戻すことが保証されていないと記載されています。
stty -icanon -echo
を使用してdtmilano's answerを作成すると、これらの問題を回避できます。
#/bin/ksh
## /bin/{ksh,sh,zsh,...}
# read_char var
read_char() {
stty -icanon -echo
eval "$1=\$(dd bs=1 count=1 2>/dev/null)"
stty icanon echo
}
read_char char
echo "got $char"
は、 '0403-010指定されたフラグはこのコマンドには有効ではありません。 – footy
@footy、bashの組み込みreadコマンドには-nオプションがあります。どのシェルを使っていますか? –
@glennjackman ksh shell – footy