如何将变量转换为字符串格式? KSH shell 脚本
How to convert a variable to string format? KSH shell scripting
我正在尝试将变量转换为字符串格式,以便稍后可以使用 java runsql 实用程序将其值插入数据库。数据库需要该值是字符格式,因此是字符串。
这是我的代码的简化版本,因此我可以深入了解我要问的问题 -
#!/bin/ksh -x
value1=2018-01-01
value2=2018-02-01
mystring=$value1,$value2
echo $mystring
stringify=${'value1'},${'value2'})
echo $stringify
发生什么情况是我没有得到 stringify 的输出,或者取决于我如何切换符号的排列我得到文字字符串 'value1'
或 'value2'
。
我做错了什么?我觉得这很简单,也许我只是盯着它看太久了,我不知道。
你可以像这样转义引号:
mystring=\'$value1\',\'$value2\'
输出:
$ echo $mystring
'2018-01-01','2018-02-01'
获得相同输出的更简单选项(如@CharlesDuffy 所建议)是:
mystring="'$value1','$value2'"
你可以这样做,更简单:
#!/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'
我正在尝试将变量转换为字符串格式,以便稍后可以使用 java runsql 实用程序将其值插入数据库。数据库需要该值是字符格式,因此是字符串。
这是我的代码的简化版本,因此我可以深入了解我要问的问题 -
#!/bin/ksh -x
value1=2018-01-01
value2=2018-02-01
mystring=$value1,$value2
echo $mystring
stringify=${'value1'},${'value2'})
echo $stringify
发生什么情况是我没有得到 stringify 的输出,或者取决于我如何切换符号的排列我得到文字字符串 'value1'
或 'value2'
。
我做错了什么?我觉得这很简单,也许我只是盯着它看太久了,我不知道。
你可以像这样转义引号:
mystring=\'$value1\',\'$value2\'
输出:
$ echo $mystring
'2018-01-01','2018-02-01'
获得相同输出的更简单选项(如@CharlesDuffy 所建议)是:
mystring="'$value1','$value2'"
你可以这样做,更简单:
#!/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'