您好我有一个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"
答案 0 :(得分:4)
我遇到了同样的问题。在我的bash脚本中,我有一个while循环中的sqlcmd,循环将继续一遍又一遍地运行列表中的第一个项目,而不是继续到下一个项目。正如评论中所提到的,将此< /dev/null
添加到sqlcmd行的末尾将导致它退出循环中的卡住点并继续下一个tiem。