我似乎在獲取我想要的工作時遇到了一些困難。基本上,我有一系列變量,它們被分配了帶有一些引號和\字符的字符串。我想刪除引號將它們嵌入到json文檔中,因爲json不喜歡使用python轉儲方法引用引號。變量替換消除引號
我覺得這很容易。只需確定如何輕鬆刪除字符,然後爲變量替換編寫一個簡單的for循環,那麼它就不會以這種方式工作。
這是我想要做的。
有一個名爲「MESSAGE23」的變量,它包含以下「com.centrify.tokend.cac」,我想刪除引號,這對我來說很簡單,簡單的echo $opt | sed "s/\"//g"
。當我做這個命令行:
$> MESSAGE23="com."apple".cacng.tokend is present"
$> MESSAGE23=`echo $MESSAGE23 | sed "s/\"//g"`
$> com.apple.cacng.tokend is present
這工作。我得到格式正確的字符串。
當我然後試圖把它扔到一個循環中時,所有的地獄崩潰了。
for i to {1..25}; do
MESSAGE$i=`echo $MESSAGE$i | sed "s/\"//g"`
done
這不工作(無論它拋出了一堆指標出來或沒有),我敢肯定,我只是不知道arg
或eval
或其他慶典替換變量足夠。
但基本上我想爲另一組具有相同問題的變量執行此操作,在這裏我將引號和附帶的「\」去掉。
任何幫助將不勝感激。
yuck ..不,不反對使用數組?我有變量MESSAGE1-25,我應該把每一個都推到一個數組上,然後彈出每個關閉並替換它?我想我不知道我應該把這個數組放在哪裏? – 2013-03-28 00:37:14
哦..我明白了。 MESSAGE是數組並彈出數組到該數組 – 2013-03-28 00:37:58
右。你可以使用'MESSAGE1 = blah1','MESSAGE2 = blah2'等,而不是'MESSAGE1 = blah1','MESSAGE [0] = blah1','MESSAGE [1] = blah2'等等。或者像圓括號一樣初始化整個事物,或者使用'read -a'從文件中讀取它 - 這取決於這些變量是如何在應用程序中設置的。 – 2013-03-28 14:13:13