2015-11-02 82 views
0

我有一個Postgresql函數,它返回JSON字符串的表。從Postgresql獲取行的Bash腳本

我想在Linux平臺下獲取這些行和這樣每個字符串運行卷曲程序:

curl http://XXX.XX.XX.XX:XXXX/update/json -H 'Content-type:application/json' -d ['||solr_interface.dict_cursor_okpd_json()||']' 

你有例子,如何使用這個說bash腳本做什麼?

謝謝你的建議。

+0

我看不到捲曲的部分是如何相關的,除非你甚至不知道如何將字符串保存到參數,並在以後進行擴展在bash有用。不妨編輯它,因爲它會混淆問題。 – 4ae1e1

+0

是的,我明白了。問題的主要問題是如何獲取行usig bash腳本。提到捲曲是我想要得到的結果。 –

回答

0

我找到了解決方案。也許它會爲別人

#!/bin/bash 

if [ $# != 2 ]; then 
    echo "Please select postgres procedure for data retreaving as first parameter" 
    echo "and Solr index name (dictionary or company) as second parameter" 
    exit 1; 
fi 

PSQL=/usr/bin/psql 

DB_USER="xxxxxxxx" 
DB_PASSWORD="xxxxxxxx" 
DB_HOST="xxx.xxx.xxx.xxx" 
DB_PORT="xxxx" 
DB_NAME="portal_sources" 

export PGPASSWORD=$DB_PASSWORD 

$PSQL \ 
    -X \ 
    -h $DB_HOST \ 
    -p $DB_PORT $DB_NAME \ 
    -c "select 'curl http://xxx.xxx.xxx.xxx:xxxx/solr/$2/update/json -H ''Content-type:application/json'' -d ''['||$1||']'''" \ 
    --single-transaction \ 
    --set AUTOCOMMIT=off \ 
    --set ON_ERROR_STOP=on \ 
    --no-align \ 
    -t \ 
    --field-separator ' ' \ 
    --quiet \ 
| while read command ; do 
    #echo "$command" 
    eval $command 
done