shell脚本循环中的sqlcmd

rox*_*sap 2 linux shell sqlcmd

嗨,我有一个 shell 脚本,可以在 SQL 服务器中插入 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"
Run Code Online (Sandbox Code Playgroud)

dbC*_*arl 5

我有同样的问题。在我的 bash 脚本中,我在 while 循环中使用了 sqlcmd,该循环将继续一遍又一遍地运行列表中的第一项,而不是继续执行下一项。如评论中所述,将其添加 < /dev/null到 sqlcmd 行的末尾将使其摆脱循环中的卡住点并继续进行下一次。