通過運行此行代碼:解析的Postgres導致在bash
psql -c "\l" -p 54049
我得到以下結果:
我的問題是有點一般BASH
1 - 我該如何解析BASH中的表格
2-這是什麼類型的表稱爲
3-培訓教程任何手腳在艱難地
4-學習BASH,我怎麼能分析該表作爲一個數組的數組,每行會作爲數組和它的每一個元素作爲列?
主要問題: 我想我的手動輸入比較與此表,因此,如果我的輸入數據庫名稱中的結果存在,它將繼續否則將另一回事。
這裏是一個不正常的代碼:
dbsList=`psql -c "\l" -p 54049 | awk '{ print $1 }'`
echo "Please enter a valid DB name you want to backup:"
read dbName
contains() {
[[ $1 =~ (^|[[:space:]])"$2"($|[[:space:]]) ]] && echo 0 || echo 1
}
contains dbsList dbName
while [ `contains dbsList dbName` -eq 1 ]
do
echo "Please enter a valid DB name you want to backup:"
read dbName
done
更好的例子使用'psql -c'從pg_database「-p 54049'中選擇string_agg(datname,',')作爲列表 –
並簡單回答:不要在bash中執行此操作。使用真正的編程語言,如果你想編寫可維護的代碼 – frlan
我可能會使用python – Vagho