[英]bash script to enter array quantity and fill array data
今天我想我會寫一個小的 bash 腳本來在 SQL 數據庫上創建數據庫表。 我以為很快就會變成不同的。 無論如何,我處於精神障礙,需要建議。 我最終想要做的是讓用戶輸入表中的列數,然后為他們開始輸入的數量指定列標簽和數據類型。 然后我將使用數組元素來組裝我的 SQL 服務器命令。 起初對我來說似乎很明顯,但不再那么明顯了。 任何幫助表示贊賞!
我要做類似...
#!/bin/bash
echo "Enter database name: "
read dbname
echo "Enter table name: "
read tablename
echo "Enter column count: "
read columns
echo "Enter database username: "
read dbuser
echo "Enter database user password: "
read dbpw
for i in ${columns[@]} do
echo "Column "$i" Name: "
read array_cname[$i]
echo "Column "$i" Data Type: "
read array_ctype[$i]
done
table="USE $dbname CREATE TABLE $tablename(array_cname[] array_ctype[] etc etc etc)"
mysql -u$dbuser -p$dbpw -e "$table"
上面顯然是一個損壞的腳本,我只是在蠶食了我最初要做的事情后才把它攪起來。
我將只查看您正在努力解決的部分 - 遍歷列 - 您應該能夠將這些課程帶回到您的腳本中。
這就是我寫的,省略了你所做的簡單部分,並將columns
設置為 2,以在我測試時節省輸入。
#!/bin/bash
columns=2
declare -a cols
for ((i=1; i<=$columns; i++))
do
read -p "Column $i Name: " n
read -p "Column $i Data Type: " t
cols[$i]="$n $t"
done
echo "CREATE TABLE t (${cols[*]} etc etc etc)"
declare
來確保我們的數組變量是正確的類型。 當我們第一次分配給一個元素時,Bash 會推斷它是一個數組,但我想說清楚。1
到$columns
的整數,我使用了 Bash for
循環。for
和do
之間的分號或換行符。n
表示名稱, t
表示類型。 我還使用-p
使read
為我們發出提示。cols+=("$n" "$t")
。${cols[*]}
。$ ./36337995.sh
Column 1 Name: a
Column 1 Data Type: int
Column 2 Name: b
Column 2 Data Type: int
CREATE TABLE t (a int b int etc etc etc)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.