मेरे पास लिनक्स बैश में एक SQLCMD है जो एक चयन के परिणाम प्राप्त कर रहा है, मैं प्रत्येक पंक्ति पर कैसे पुनरावृति कर सकता हूं, और विशिष्ट कॉलम चुनने में सक्षम हो सकता हूं ताकि मैं उन्हें बैश कमांड चलाने के लिए उपयोग कर सकूं
मैं वर्तमान में सीएसवी फ़ाइल में चयन और आउटपुट करता हूं, जो ठीक काम करता है, लेकिन मुझे एक ऐसा तरीका मिल जाएगा जो निर्यात नहीं करता है, क्योंकि अनुमतियां चल रही हैं, और मुझे एक स्क्रिप्ट के साथ पूरी तरह से चलाने की जरूरत है
#!/bin/bash
sqlcmd -S DB_string -d DB -U USERNAME -P PASSWORD -Q \
"SET NOCOUNT ON SELECT * FROM dbo.microiopenvpn WHERE mode='create' ORDER BY id" -o "sqloutputCheckCreate.csv" -W -w 1024 -s"," -h-1
line_no=0
file=sqloutputCheckCreate.csv
line_no=$(awk '{x++} END {print x}' $file)
echo $line_no
#rowCount= sqloutputCheckCreate.csv | wc -l
if [ $line_no > 0 ]; then
echo "SQL Has Entries"
while IFS="," read -r d1 d2 d3 d4 d5 d6; do
if [ -e "/etc/openvpn/clients/$d6.ovpn" ]; then
echo "$d6 File exists"
sqlcmd -S DB_string -d DB -U USERNAME -P PASSWORD -Q \ -Q "SET NOCOUNT ON UPDATE dbo.microiopenvpn SET mode='valid' WHERE id='$d1'" < /dev$ echo "Database Updated - Successfully"
else
echo "$d6 does not exist - Action Creation Script of $d6"
./executecreate.sh
fi
done < sqloutputCheckCreate.csv
else
echo "Nothing there"
fi
cp /dev/null sqloutputCheckCreate.csv
बाहरी सीएसवी फ़ाइल में निर्यात करते समय उपरोक्त काम करता है, लेकिन मुझे एसक्यूएल निर्यात को वैरिएबल और लूप में डालने की ज़रूरत है - तो बाहरी कुछ भी नहीं - विचार?
1 उत्तर
कुछ इस तरह:
sqlcmd ... | while IFS="," read -r d1 d2 d3 d4 d5 d6
do
:# stuff
done
या, वैकल्पिक रूप से:
while IFS="," read -r d1 d2 d3 d4 d5 d6
do
:# stuff
done < <(sqlcmd ...)
संबंधित सवाल
नए सवाल
linux
LINUX QUESTIONS को संबंधित होना चाहिए। इस टैग का उपयोग केवल तभी करें जब आपका प्रश्न लिनक्स एपीआई या लिनक्स-विशिष्ट व्यवहार का उपयोग करके प्रोग्रामिंग से संबंधित हो, न कि केवल इसलिए कि आप लिनक्स पर अपने कोड को चलाने के लिए होते हैं। यदि आपको लिनक्स समर्थन की आवश्यकता है तो आप https://unix.stackexchange.com या विशिष्ट लिनक्स वितरण की स्टैक एक्सचेंज साइट जैसे https://askubuntu.com या https://elementaryos.stackexchange.com/ की कोशिश कर सकते हैं