2017-08-17 7 views
0

私はsqlite3操作のための2つのスクリプトを書いています。私の最初のスクリプトでは、データベースとテーブル名を作成し、2番目のスクリプトではテーブルrecords.Whileを実行する2番目のスクリプトを実行して、テーブルの名前..いずれかの私を助けてください..!既に作成されたデータベースとスクリプトのテーブルを取り出す方法は?

script1.sh

#!/bin/bash 

echo " --- Enter the Database name ---" #name of the database 
read databasename 

echo " --- enter the table name --- " #name of the table 
read table_name 

sqlite3 $databasename.db "DROP TABLE IF EXISTS $table_name;" 

sqlite3 $databasename.db "CREATE TABLE IF NOT EXISTS $table_name(cus_id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,cus_name TEXT NOT NULL UNIQUE ,cus_domain TEXT UNIQUE, cus_status TEXT NOT NULL,Port INTEGER NOT NULL);" #table creation 

Script2.sh

echo "choose the database" 
#Here i want to choose the already create database. 

echo "choose the table" 
#Here i want to choose the table in the alreadt created database. 

echo " --- Enter the total number of customer records do you want ---" 
read cus_count # number of rows value 


echo "--- Enter the following details one by one---" 

RED='\033[0;31m' 
NC='\033[0m' 
port_num=8080 
declare -a customer 

for((i=1;i<=cus_count;i++)) 
do 


echo "enter the $i customer details" 

echo "---Enter the customer name---" 
read c_name 

d_name=${c_name,,} 
#echo $d_name 

customer=$(sqlite3 $databasename.db "select cus_domain from $table_name where cus_domain like '$d_name';") 

for cus in "${customer[@]}" 
do 

if [[ $d_name != $customer ]]; 

then 
    echo "---Enter the Status(Active/Inactive)---" 
    read c_status 

if [[ "$port_num" == "$port_num" ]]; then 
     port_num=$(($port_num + 1)) 

c_domain="$c_name" 


sqlite3 $databasename.db "INSERT OR IGNORE INTO $table_name (cus_name,cus_domain,cus_status, Port) VALUES(\"$c_name\",\"${c_domain,,}\",\"${c_status,,}\",\"$port_num\") ;" 
fi 


else 
    echo -e "${RED}!!!OOPS for you entered customer name already domain name assigned!!!${NC}" 
    echo -e "${RED}Please enter new customer name${NC}" 

i=$(($i - 1)) 

fi 
done 
done 

echo " --- Records from the $table_name ---" 

sqlite3 $databasename.db "select * from $table_name;" 

事前にいずれかのヘルプme..Thanksください...

あなたがにデータベースとテーブルの名前を書くことができ
+0

どのようにテーブル名の作成について最初のスクリプト 'echo -n $ table_name> table_name.txt'の中にある' table_name = $(cat table_name.txt) 'のファイルを取り出してください。 –

+0

テーブルを選択してもOKです。 ? – Mahendranatarajan

+0

データベース名を2番目のファイルに書き込みます。または、データベース名をファイルに書き込んだ後、同じファイルにテーブル名を追加することもできますか? –

答えて

0

ファイル。

echo $databasname >> /tmp/new_database 
echo $table >> /tmp/new_database 

と、このファイル

を読むために2番目のスクリプトを設定それとも、引数としてスクリプト1つの通過データベース名とテーブル名からスクリプト2を呼び出すことができます

script1 
#!/bin/bash 

... 
/bin/bash script2.sh $databasename $tablename 


script2.sh 
#!/bin/bash 
databasename = $1 
tablename = $2 
+0

sqlite3 $ databasename.db "DROP TABLE IF EXISTS $ table_name;"私はそれを行うことができますoperation.whatをドロップする必要はありません上記クエリで? – Mahendranatarajan

+0

詳細はこちら(https://stackoverflow.com/a/9565901/4175515)を参照してください。ただし、テーブル作成の一般的なステートメント –

+0

テーブルを削除したくありません。私は次の操作のために私のテーブルデータを欲しい – Mahendranatarajan

関連する問題