データベーステーブルの特定の列の値をシェルスクリプトのそれぞれの入力文字列と比較したいと思います。これどうやってするの? 次のスクリプトでは、すべての顧客の値を読み取るが、最初の値のみを読み取る。私に何ができる?データベーステーブルの特定の列とそれぞれの文字列を比較する方法
customer=$(sqlite3 $databasename.db "select cus_name from $table_name"); if [[ $c_name != $customer ]];
#!/bin/bash
echo " --- Enter the Database name ---"
read databasename
echo " --- enter the table name --- "
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);"
echo " --- Enter the total number of customer records do you want ---"
read cus_count
echo "--- Enter the following details one by one---"
port_num=8080
for((i=1;i<=cus_count;i++))
do
echo "enter the $i customer details"
echo "---Enter the customer name---"
read c_name
customer=$(sqlite3 $databasename.db "select cus_name from $table_name");
if [[ $c_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,,}.in\",\"$c_status\",\"$port_num\") ;"
fi
else
echo "!!!OOPS you entered customer name already available!!!"
echo "---Please enter new customer name---"
i=$(($i - 1))
fi
done
done
echo " --- Records from the $table_name ---"
sqlite3 $databasename.db "select * from $table_name;"
を行うその後、bashの配列
を使用し、問題のコードの関連部分のみを入れてください。 – sjsam
customer = $(sqlite3 $ databasename.db "select cus_name from $ table_name"); の場合[[$ c_name!= $ customer]]; then ---- – Mahendranatarajan
私はすでに問題のコードを見ました。私はちょうどその部分だけが問題を再現するのに十分であったと言っていました。また、私はあなたの特定の問題の解決策を追加しました – sjsam