运行命令,然后通过SQLCMD添加结果

时间:2019-07-01 04:47:45

标签: linux bash sqlcmd

我试图在bash中运行命令,然后使用SQLCMD将结果输出到DB

以下是我的部分脚本

commandResults=$(/home/techionadmin/ssh.sh ${d9} "${d5}")
newcmd=${commandResults}
ranattimestamp=$(date +%s)
echo ${newcmd}
sqlcmd -S SERVER -d DB-U USER-P PASSWORD-Q \ 
"SET NOCOUNT ON UPDATE micro_i_cmd_queue SET status='EXECUTED', result='${newcmd}', ran_at='$ranattimestamp' WHERE id='$d1'" -b

例如,我在Linux机器上运行“ ls -l”命令,然后将结果放入数据库 echo $ {newcmd}行一切正常,输出一切正常 但是当我运行SQLCMD时出现错误

 Unclosed quotation mark after the character string

除此部分外,其他所有操作

我尝试过的是删除所有换行符或回车符,但是没有效果 仅当我按照以下说明操作时有效。

commandResults=$(/home/techionadmin/ssh.sh ${d9} "${d5}" | tr -d '\040')

注意| tr -d'\ 040'结尾-因此它将删除所有空格并留下换行符,制表符和返回值 如果我尝试用'〜'这样的字符替换所有空格,则可以在服务器端将其修复,但不能正常工作

帮助!!!!

下面完整显示错误

Unclosed quotation mark after the character string 'total 5260
-rw-r--r--  1 pi pi 1791164 Nov 22  2018 2018-11-22-    101115_1280x1024_scrot.png
-rw-r--r--  1 pi pi 1792668 Nov 22  2018 2018-11-22-    101123_1280x1024_scrot.png
-rw-r--r--  1 pi pi    1412 Jun 17 13:18 checkver.sh
drwxr-xr-x  2 pi pi    4096 Nov 22  2018 Desktop
drwxr-xr-x  2 pi pi    4096 Oct 10  2018 Documents
drwxr-xr-x  2 pi pi    4096 Oct 10  2018 Downloads
-rw-r--r--  1 pi pi 1661676 Oct  9  2018 get-pip.py
drwxr-xr-x  2 pi pi    4096 Jan  8 12:35 Heartbeat
drwxr-xr-x  8 pi pi    4096 Dec  5  2011 i2c-tools-3.1.0
-rw-r--r--  1 pi pi   66840 May  1  2012 i2c-tools_3.1.0.orig.tar.bz2
drwxr-xr-x  2 pi pi    4096 Oct 10  2018 MagPi
drwxr-xr-x  5 pi pi    4096 Jun 12 12:26 Micro-I
drwxr-xr-x 14 pi pi    4096 Jun 19 12:07 MicroI_Deployment
drwxr-xr-x  2 pi pi    4096 Oct 10  2018 Music
-rw-r--r--  1 pi pi       0 Jul  1 14:54 nul
drwxr-xr-x  2 pi pi    4096 Oct 10  2018 Pictures
drwxr-xr-x  2 pi p
Msg 102, Level 15, State 1, Server tgitsupport, Line 1
Incorrect syntax near 'total 5260
-rw-r--r--  1 pi pi 1791164 Nov 22  2018 2018-11-22-101115_1280x1024_scrot.png
-rw-r--r--  1 pi pi 1792668 Nov 22  201'.

'total 5260'之后有一个特殊字符吗????

1 个答案:

答案 0 :(得分:0)

输出是什么:echo $ {newcmd}

也许它在字符串中包含一个',并且过早地在result ='$ {newcmd}'处关闭引号