如何使用一个简单的命令将大量变量附加到一个变量

2024-03-26

我想将所有变量粘贴到一个变量中

A=('blah')
AA=('blah2')
AAA=('blah3')
AAB=('blah4')
AAC=('blah5')
#^^lets pretend theres 100 more of these ^^
#Variable composition
#after AAA, is AAB then AAC then AAD etc etc, does that 100 times

我希望它们全部放入这个 MASTER 变量中

#MASTER=${A}${AA}${AAA} (<-- insert AAB, AAC and 100 more variables here)

我显然不想在此表达式中键入 100 个变量,因为可能有一种更简单的方法可以做到这一点。另外,我会做更多这样的事情,因此我需要自动化。

我对 sed、awk 比较陌生,有没有办法将这 100 个变量附加到主变量中?

为了这个特定目的,我不需要一个数组。


您可以使用simple一句话,非常简单,但更昂贵:

master=$(set | grep -E '^(A|AA|A[A-D][A-D])=' | sort | cut -f2- -d= | tr -d '\n')
  • set列出所有变量var=name format
  • grep过滤掉我们需要的变量
  • sort将它们按正确的顺序排列(可能是可选的,因为set给出排序的输出)
  • cut提取值,删除变量名称
  • tr删除换行符

我们来测试一下。

A=1
AA=2
AAA=3
AAB=4
AAC=5
AAD=6
AAAA=99 # just to make sure we don't pick this one up
master=$(set | grep -E '^(A|AA|A[A-D][A-D])=' | sort | cut -f2- -d= | tr -d '\n')
echo "$master"

Output:

123456
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用一个简单的命令将大量变量附加到一个变量 的相关文章

随机推荐