2010-04-28 5 views
26

मूल रूप से मैं इस मामले में mysql -uanon -ppwd -db mydb -e "select count(*) from table1" में दिए गए आदेश का आह्वान करने में सक्षम होना चाहता हूं। और फिर यह आदेश परिणाम (उस तालिका पर गिनती) लें और इसे बैश स्क्रिप्ट में एक चर में रखें। इसे प्राप्त करने का सबसे आसान तरीका क्या है?बैश: आदेश कैसे कम करें और परिणाम को एक चर में संग्रहीत करें?

उत्तर

40

आप सबसे अधिक संभावना बैच मोड (-B) का उपयोग करें और गैर-सहभागी mysql उत्पादन के लिए स्तंभ नाम (--disable-स्तंभ नाम) को निष्क्रिय करना चाहते:

out=$(mysql -B -db mydb -uanon -ppwd --disable-column-names -e "select count(*) from table1";) 
+0

लिनक्स newbies के लिए, यकीन है कि वहाँ रहे हैं परिवर्तनीय नाम, = चिह्न और अभिव्यक्ति के बीच कोई स्थान नहीं है। बुरी चीजें हो सकती हैं। – dotnetguy

14
$ A=$(mysql -uanon -ppwd -db mydb -e "select count(*) from table1") 
$ echo $A 

दूसरे शब्दों में, $() वाक्यविन्यास का उपयोग करें।

संबंधित मुद्दे