Код работает нормально до последнего цикла for.
Он пытается войти в базу данных. Либо он устанавливает успешное соединение с базой данных, либо нет, скрипт выдает сообщение OK / NOT OK в зависимости от соединения и затем завершает работу сценария оболочки. Что я должен сделать, чтобы решить это?
#!/bin/bash
read -p 'Username: ' var_username
read -sp 'Password: ' var_password
filename="$1"
while read -r line; do
name=$(sed 's/#.*$//g; s/(.*$//g; s/=.*$//g; s/).*$//g')
done < "$filename"
#retval=$? | tail -n1|grep OK
for tns in $name
do
tnsping $tns
if [ $? -eq 1 ]; then
echo $tns 'tnsping i calismiyor' >>tnslatest.log
else
echo $tns 'tnsping i calisiyor' >>tnslatest.log
working_tns+=($tns)
fi
done
#The following lines do not work properly.#
for working in $working_tns
do
echo "exit" | sqlplus -L $var_username/$var_password@$working | grep
Connected > /dev/null
if [ $? -eq 0 ]
then
echo "OK"
else
echo "NOT OK"
fi
done
Например; мой файл tnsnames.ora содержит 4 tns.
Итак, я хочу иметь для вывода, как ОК или НЕ ОК в общей сложности.
Заранее спасибо.