Я написал сценарий оболочки для подключения к базе данных DB2.Этот сценарий выводит список баз данных на сервере DB2 и подключается к базе данных после того, как пользователь вводит нужное имя базы данных.Но после запуска сценария с информацией об успешном соединении с БД, когда я пытаюсь выполнить команду для базы данных, она говорит, что соединение с базой данных не существует.SQLSTATE = 08003
#!/bin/bash
#
#DBA DB2 Script: DB connection script-connectdb
#Created By : Ashish Verma
#Creation Date : 04/27/2019
#
#Purpose: This script connects to and activates the database
#printf "Below is the list of databases"
DBLIST=`db2 list db directory | grep -i alias | awk '{print $4}'`#This stores all the available databases in DBLIST
USER=`whoami`
echo "Following are the list of available database(s)"
echo "----------------------------------------------"
for db in $DBLIST; do
echo $db#Present the user will all available databases to choose and input
done
printf "\nEnter the name of the database you wish to connect to: "
read CHOICE#User enters tha db name
DB=`db2 "connect to $CHOICE user $USER"`##connection to database is made and output stored in variable DB
if [ -z "$(echo $DB | awk '{print $18}')" ]; then
printf "Database connection failed! Please check the below error: "#Prints if database is not connected to
printf "\n$DB\n"
else
printf "\nYou are connected to database $DB\n"#Prints successful connection
fi
#End of Script
После выполнения вышеописанного сценария соединение с базой данных успешно установлено и выводится строка «Вы подключены к базе данных $ DB». Любая команда, которая запускается для базы данных из оболочки, должнабыть успешным. Например: список табличных пространств db2; но даже после успешного подключения к базе данных в приведенном выше сценарии, когда я пытаюсь выполнить команду для базы данных, она говорит, что подключение к базе данных не существует, и мне нужно запуститьКоманда «db2 connect to database db_name» из оболочки для манипулирования базой данных. Может кто-нибудь помочь мне, почему мне нужно запустить команду connect to database даже после успешного запуска вышеуказанного скрипта?