Как преобразовать переменную в формат строки?Скрипты оболочки KSH - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь преобразовать переменную в строковый формат, чтобы я мог использовать утилиту java runql, чтобы позже вставить ее значение в базу данных.База данных должна иметь значение в формате char, следовательно, строка.

Это тупая версия моего кода, поэтому я могу понять суть того, что я спрашиваю -

#!/bin/ksh -x
value1=2018-01-01
value2=2018-02-01

mystring=$value1,$value2
echo $mystring

stringify=${'value1'},${'value2'})
echo $stringify

Что происходит, если я не получаю вывод для stringify или в зависимости откак я переключаю расположение символов, я получаю буквальную строку 'value1' или 'value2'.

Что я делаю не так?Я чувствую, что это очень просто, может быть, я просто смотрю на это слишком долго, я не знаю.

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Вы можете сделать вот так, проще:

#!/bin/ksh -x
value1=2018-01-01
value2=2018-02-01

mystring=$value1,$value2
echo $mystring

stringify="'$value1','$value2'" #use double-quotes around the variables
echo $stringify

Вывод:

2018-01-01,2018-02-01
'2018-01-01','2018-02-01'
0 голосов
/ 30 мая 2018

Вы можете просто экранировать кавычки следующим образом:

mystring=\'$value1\',\'$value2\'

Вывод:

$ echo $ mystring

'2018-01-01', '2018-02-01 '

Более простой способ получить тот же вывод (как предложено @CharlesDuffy):

mystring="'$value1','$value2'"
...