Я не знаю, странно ли, что чтение не берет вход с терминала.команда чтения не принимает вход с терминала
Сценарий configure, который используется в процессе создания исходного кода, должен попросить пользователя дать ввод для выбора типа базы данных 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. Есть ли встроенная переменная, которая может блокировать чтение с ввода?
Что читает в/tmp/error.log' emit? – pts
@pts ничего, пустой файл – sach
Я думаю, что вы опустили некоторый код из середины, который перенаправляет stdin. Например, добавление 'exec dev/null' над строкой' read in' будет объяснять то, что вы наблюдаете, потому что в этом случае 'read in' встречает EOF и устанавливает' $? 'В 1. – pts