Запустите команду, а затем добавьте результаты через SQLCMD - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь запустить команду в 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

Например, я запускаю команду 'ls -l' на компьютере с Linux, а затем хочу разместить результаты в БД Строка echo $ {newcmd} все в порядке, выводит все в порядке Но когда я запускаю SQLCMD, я получаю ошибку

 Unclosed quotation mark after the character string

Все остальное работает, кроме этой части

То, что я пробовал, это удалить все новые строки или возврат каретки, но безрезультатно работает только если я делаю, как указано ниже.

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

Обратите внимание на | tr -d '\ 040' в конце - поэтому он удаляет все пробелы и оставляет переводы строк, табуляции и возвраты Если я попытаюсь заменить все пробелы символом вроде '~', я смогу исправить его на стороне сервера, но он не будет работать

HELP !!!!

Полный вывод ошибки ниже

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» ????

1 Ответ

0 голосов
/ 01 июля 2019

Что выводится: echo $ {newcmd}

Возможно, он содержит '' в строке и преждевременно закрывает ваши кавычки в результате = = $ {newcmd} '

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...