next up previous
Next: 怎麼樣把 "*.foo" 改名為 "*.bar" 呢?怎樣把檔案名稱改成小寫呢? Up: 初學者可能會問的基本問題 Previous: 要怎麼設定 prompt 才會顯示出目前所在的目錄?

當我在寫 shell script 時,要如何從 terminal 讀入字元?

在 sh 中,你可以用 read。通常是使用在迴圈,如下例:

		while read line
		do
		    ...
		done
在 csh 中,則用 $<:
		while ( 1 )
		    set line = "$<"
		    if ( "$line" == "" ) break
		        ...
		end
很可惜的,csh 並沒有方法判斷空白行和檔案結尾(end-of-file)的不同。

如果你要用 sh 從 terminal 讀一個字元,那麼你可以試試

		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 ."



Tan Koan-Sin
1999-03-02