我想将所有变量粘贴到一个变量中
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(使用前将#替换为@)