我们有一个变量abc,它会不断更新,其中包含用户未知的不同值。我需要将abc的所有值存储在另一个变量bcd中。 让我们考虑一个我们有一个变量abc的案例
abc="123"
abc="456"
#value of abc keeps on updating with a value not known to the user
现在让我们考虑变量bcd
bcd="all values of abc:$abc"
这里我只得到abc的最后一个值。我想在单个变量中包含所有更新的值,我们如何在unix中实现这一点
答案 0 :(得分:1)
每次变量abc
发生变化(或每次您希望将其值附加到变量bcd
)时,请说明以下内容:
bcd="$bcd,$abc"
注意,避免在bcd
的一端或另一端使用额外的逗号(或其他分隔符)有点麻烦。为了避免这个问题,您可以在第一次追加之前将一个名为(例如)bcdSep
的变量设置为""
,之后设置为","
;并使用bcd="$bcd$bcdSep$abc"
。
以下是使用示例(>
表示提示):
> bcd="The values are "; bcdSep=""
> abc="123"
> bcd=$bcd$bcdSep$abc; bcdSep=","; echo $bcd
The values are 123
> abc=456
> bcd=$bcd$bcdSep$abc; bcdSep=","; echo $bcd
The values are 123,456
> abc=789
> bcd=$bcd$bcdSep$abc; bcdSep=","; echo $bcd
The values are 123,456,789
如上图所示,请使用语句abc
[或bcd=$bcd$bcdSep$abc
跟随bcd=$bcd$bcdSep$abc; bcdSep=","
的每次更改,因为可以继续设置bcdSep=","
]。
答案 1 :(得分:1)
如果你真的想把$ abc的所有值连接到$ bcd那么只需要$ bcd = $ bcd。$ abc
不确定我是否真的想要,如果你不小心的话,$ abc会变得很长。
- update-- 在ksh中这样做:
#!/bin/ksh
bcd="all values of abc:"
abc=123
bcd=$bcd" "$abc
echo $bcd
abc=456
bcd=$bcd" "$abc
echo $bcd
运行脚本:
all values of abc: 123
all values of abc: 123 456