Subject: How do I read characters from the terminal in a shell script?
Date: Thu Mar 18 17:16:55 EST 1993

2.5) シェルスクリプトでキー入力を行なうにはどうすれば良いのですか。

sh では read を使います。このようなループを使うのが一番普通です。

    
while read line
do
...
done
csh では以下のように $< を使います。

while ( 1 )
set line = "$<"
if ( "$line" == "" ) break
...
end
残念ながら、csh では空行とファイルの終りとを区別する方法がありません。

sh を使っていて、端末から文字を1文字だけ読みたい時は、こんな感じの方法 を試して下さい。

    
echo -n "Enter a character: "
stty cbreak        # or  stty raw
readchar=`dd if=/dev/tty bs=1 count=1 2>/dev/null`
stty -cbreak
      
echo "Thank you for typing a $readchar ."

UNIX FAQ LIST / Copyright(c)1994,Ted Timar / tmatimar@isgtec.com


Maintainer: あさだ たくや