0
我不知道是否奇怪,讀取沒有從終端輸入。讀取命令沒有從終端輸入
在源代碼製作過程中使用的配置腳本應該要求用戶給出輸入來選擇數據庫的類型,MYSQL或ORACLE(下面是代碼)。
MYSQLLIBPATH="/usr/lib/mysql"
echo "Enter DataBase-Type 1-ORACLE, 2-MySQL (default MySQL):"
read in
echo $? >> /tmp/error.log
if test -z "$in" -o "$in" = "2"
then
DATABASE=-DDB_MYSQL
if true; then
MYSQL_TRUE=
MYSQL_FALSE='#'
else
MYSQL_TRUE='#'
MYSQL_FALSE=
fi
echo "Enter Mysql Library Path: (eg: $MYSQLLIBPATH (default))"
read in
echo $? >> /tmp/error.log
if test -n "$in"
then
MYSQLLIBPATH=`echo $in`
fi
echo "Mysql Lib path is $MYSQLLIBPATH"
else
if false; then
MYSQL_TRUE=
MYSQL_FALSE='#'
else
MYSQL_TRUE='#'
MYSQL_FALSE=
fi
DATABASE=-DDB_ORACLE
LD_PATH=
fi
但是,讀取命令不要求用戶輸入。它沒有接受stdin的輸入。
When I checked the status of the command in the error.log it was showing
1
1
任何人都可以告訴讀者爲什麼讀取不能從stdin輸入。 是否有任何內置變量可以阻止讀取輸入?
'read in >>/tmp/error.log'發出了什麼? – pts
@pts nothing,空文件 – sach
我認爲你已經省略了一些來自中間的代碼,它們重定向了stdin。例如,將'exec dev/null'放在'read in'行之上可以解釋你正在觀察的內容,因爲在這種情況下'read in'遇到一個EOF,並將'$?'設置爲1。 – pts