我似乎在获取我想要的工作时遇到了一些困难。基本上,我有一系列变量,它们被分配了带有一些引号和\字符的字符串。我想删除引号将它们嵌入到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