2015-02-11 3 views
9

मान लीजिए मैं PostgreSQL में एक दृश्य बनाया:psql से bash तक किसी मान को वापस कैसे करें और इसका उपयोग कैसे करें?

CREATE SEQUENCE my_seq; 

मैं एक एसक्यूएल फ़ाइल get_seq.sql में नीचे लाइन स्टोर

SELECT last_value FROM my_seq; 

$SUDO psql -q -d database_bame -f get_seq.sql 

मैं कैसे बैश और उपयोग में चयन द्वारा दिया पूर्णांक संख्या मिलता है यह?

उत्तर

15

आप वीएआर = $ (आदेश) का उपयोग कर एक कमांड का परिणाम पर कब्जा कर सकते हैं वाक्य रचना:

VALUE=$(psql -qtAX -d database_name -f get_seq.sql) 
echo $VALUE 

आवश्यक psql विकल्पों मतलब है:

केवल -t tuple

-A आउटपुट असाइन नहीं किया गया

-q शांत

-X .psqlrc फ़ाइल

+0

@ eric-leschinski, तुम क्यों '-X' विकल्प जोड़ने था भागो मत? मुझे लगता है, इस मामले में इस विकल्प की आवश्यकता नहीं है। –

+0

'~/.psqlrc' फ़ाइल डेटाबेस लॉगिन पर संचालन करती है जो आपके' VALUE' चर में पकड़े गए आउटपुट को शोर डंप करती है, कि शोर को -X विकल्प के साथ हटा दिया गया था। –

+0

ठीक है, यह आप मामला था, लेकिन क्या यह आम तौर पर मान्य है? Psqlrc फ़ाइल क्वेरी चलाने के लिए आवश्यक संचालन भी कर सकती है –

1

प्रयास करें:

LAST_VALUE=`echo "SELECT last_value FROM my_seq;" | psql -qAt -d database_bame` 
संबंधित मुद्दे