2014-10-11 87 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