2014-10-11 167 views
1

我有一个shell脚本将一些参数传递给它。在这个脚本中,我构建了一个简单的json字符串。字符串中的Shell脚本参数

这里的shell脚本答:

firstname=${1} 
lastname={$2} 
email={$3} 

json='{"firstname":"'"$firstname"'","lastname":"'"$lastname"'","email":"'"$email"'"}' 

# do web request here 

这得到由外壳脚本B这样叫:

firstname="aa" 
lastname="bb" 
email="[email protected]" 
./scriptB.sh ${firstname} ${lastname} ${email} 

我张贴在JSON所有值到帐封装在服务器这个JSON之后在花括号中:{aa},{bb},{[email protected]}。在这种情况下服务器不能成为问题。

我认为这与不适当的转义或错误使用字符串引号有关?

+0

所有这些都用大括号括起来?如果你的示例代码是准确的,名字不应该有大括号,但姓氏和电子邮件会。 – 2014-10-11 14:58:01

回答

0

在您的第一个脚本{}是不一致的和未引用。请尝试:

firstname="${1}" 
lastname="${2}" 
email="${3}" 
+0

谢谢,当我回到家时,我会研究一下,并告诉你这是否有效。 – 2014-10-11 13:55:21

+0

它的工作方式如下: firstname =“$ {1}” lastname =“$ {2}” email =“$ {3}” – 2014-10-13 09:57:10

+0

很高兴这一切都奏效了。 – anubhava 2014-10-13 09:59:58