shell脚本循环中的sqlcmd

时间:2015-02-11 01:06:46

标签: linux shell sqlcmd

您好我有一个shell脚本,可以在SQL Server中插入Linux服务器的磁盘状态。在插入SQL命令之前,程序正确执行和结束。但是,当我插入SQL命令时,.sh文件永远不会进入下一行执行。它始终处于循环中。请帮助

#!/bin/bash

#Functions here
insert() {
echo "--INSERT FUNCTION--"
echo "$1"

fsname=$1
fs=$(echo "${fsname: -3}")

 sqlcmd -S <ipadd> -U <user> -P <pass> -d tech_admin -Q "EXEC insertDiskStatus $fs"
sleep 1

}
echo "TEST"
cd ~/Documents
pwd
df -Ph --exclude-type=tmpfs --exclude-type=ext3 --block-size=GB | column -t |         sed 1d > diskspace.log
filename=diskspace.log

while read -r line
do
 this=$line

 fs=$(echo $line | awk '{print $1}')

 insert $fs 

done < "$filename"

1 个答案:

答案 0 :(得分:4)

我遇到了同样的问题。在我的bash脚本中,我有一个while循环中的sqlcmd,循环将继续一遍又一遍地运行列表中的第一个项目,而不是继续到下一个项目。正如评论中所提到的,将此< /dev/null添加到sqlcmd行的末尾将导致它退出循环中的卡住点并继续下一个tiem。