首页 > 解决方案 > 运行命令,然后通过 SQLCMD 添加结果

问题描述

我正在尝试在 bash 中运行命令,然后使用 SQLCMD 将结果输出到数据库

以下是我的部分脚本

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”命令,然后想将结果放在 DB 中 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'.

'总5260'后面有特殊字符吗???

标签: linuxbashsqlcmd

解决方案


什么是输出: echo ${newcmd}

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


推荐阅读