In meinem Skript wird der Name des Kunden nicht korrekt in der for loop.please mein Problem zu beheben. { #/bin/bashIch möchte alle Kundenname Werte mit dem jeweiligen gegebenen Wert (c_name) überprüfen
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
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
customer=$(sqlite3 $databasename.db "select cus_name from $table_name;")
for cus in "${customer[@]}"
do
c_domain="$c_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))
sqlite3 $databasename.db "BEGIN TRANSACTION;INSERT OR IGNORE INTO $table_name(cus_name,cus_domain,cus_status, Port) VALUES(\"$c_name\",\"${c_domain,,}.in\",\"$c_status\",\"$port_num\") ;COMMIT;"
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;"}
Ausgang 1:
mahendranatarajan @ amachu-Inspiron-3558: ~ ./new2.sh $
--- den Namen der Datenbank eingeben - -
Demo
--- geben Sie den Tabellennamen ---
demo_table
--- die Gesamtzahl der Kundendaten eingeben wollen Sie ---
--- Geben Sie die folgenden Angaben nacheinander ---
eingeben die 1 Kundendaten
--- Geben Sie den Kundennamen ---
ABC
--- Geben Sie den Status (aktiv/inaktiv) ---
Aktive
geben Sie die 2 Kundendaten
--- Geben Sie den Kundennamen ---
ABC
!!! OOPS Sie eingegeben Kundenname bereits verfügbar !!!
--- Bitte geben Sie neuen Kundennamen ---
geben Sie die 2 Kundendaten
--- Geben Sie den Namen des Kunden ---
BCD
--- Geben Sie den Status (aktiv/inaktiv) ---
Aktive
Geben Sie die 3 Kundendaten
--- Geben Sie den Namen des Kunden ---
ABC
--- Geben Sie den Status (aktiv/inaktiv) ---
Aktive
--- Datensätze aus der demo_table ---
1 | ABC | abc.in | Aktiv | 8081
2 | BCD | bcd.in | Aktiv | 8082
mahendranatarajan @ amachu-Inspiron-3558: ~ $
ich hier ersten Wert als "ABC" gebe dann zweiten Wert als "ABC" zeigt es dann die Warnmeldung korrekt an. aber die folgende Ausgabe gebe ich ersten Wert als "ABC" dann zweiten Wert als "BCD" dann dritten Wert als "ABC", aber ich kann nicht die Warnmeldung richtig bekommen. Was kann ich für dieses Problem tun ..?
Ausgang 2:
mahendranatarajan @ amachu-Inspiron-3558: ~ $ ./new2.sh
--- Geben Sie den Namen der Datenbank ---
Demo
- - geben Sie den Namen der Tabelle ---
demo_table
--- Ent er die Gesamtzahl der Kundendaten wollen Sie ---
--- Geben Sie die folgenden Details nacheinander ---
geben Sie die 1 Kundendaten
- Betretet den Kundennamen ---
ABC
--- Geben Sie den Status (aktiv/inaktiv) ---
Aktive
geben Sie die 2 Kundendaten
--- Geben Sie den Namen des Kunden ---
BCD
--- Geben Sie den Status (aktiv/inaktiv) ---
Aktive
geben Sie die 3 Kundendaten
--- Geben Sie den Kundennamen ---
ABC
--- Geben Sie den Status (aktiv/inaktiv) ---
Aktive
--- Datensätze aus die demo_table ---
1 | ABC | abc.in | Aktiv | 8081
2 | BCD | bcd.in | Aktiv | 8082
mahendranatarajan @ amachu-Inspiron-3558: ~ $
Bitte formatieren Sie Ihre Ausgabe mit Markdown zum Zweck der Lesbarkeit. – Yunnosch
@Yunnosch done .. – Mahendranatarajan
versuchen 'if [[" $ c_name "! =" $ Cus "]]' – pikand