我试图在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'之后有一个特殊字符吗????
答案 0 :(得分:0)
输出是什么:echo $ {newcmd}
也许它在字符串中包含一个',并且过早地在result ='$ {newcmd}'处关闭引号