我不知道 read 没有从终端获取输入是否很奇怪。
在源代码制作过程中使用的配置脚本应要求用户输入以选择数据库类型 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
但是,读取命令并不要求用户输入。它未能从标准输入中获取输入。
When I checked the status of the command in the error.log it was showing
1
1
谁能告诉为什么 read 无法从标准输入中获取输入。是否有任何内置变量可以阻止读取输入?