首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何迭代bash sqlcmd输出

如何迭代bash sqlcmd输出
EN

Stack Overflow用户
提问于 2019-06-24 08:29:33
回答 1查看 8.5K关注 0票数 0

我在linux bash中有一个SQLCMD,我得到了SELECT的结果,我如何迭代每一行,并能够挑选出特定的列,以便我可以使用它们在上面运行一个bash命令

我目前的doa选择和输出到csv文件,这是正常的,但我宁愿找到一种方式,不导出,因为权限在发挥作用,我需要运行所有完整的一个脚本

代码语言:javascript
复制
#!/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

当导出到外部csav文件时,上述方法有效,但我需要将sql导出放到变量中并循环该变量-所以没有外部想法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-24 08:52:38

类似于:

代码语言:javascript
复制
sqlcmd ... | while IFS="," read -r d1 d2 d3 d4 d5 d6
do
    :# stuff
done

或者,或者:

代码语言:javascript
复制
while IFS="," read -r d1 d2 d3 d4 d5 d6
do
    :# stuff
done < <(sqlcmd ...)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56728643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档