我正在尝试从其他全局变量名称组成一个新的全局变量,如
global partA 1234
global partB 5678
global fullname $partA_$partB
然而,当我这样做时,下划线被解释为第一个全局名称的一部分。我目前的解决方案是从partA
创建一个本地,然后执行
global fullname `partA'_$partB
如何将前两个全局变量连接成一个新的全局变量,并用下划线(或其他字符)将它们分开而不创建这个临时本地?
答案 0 :(得分:2)
您可以在global
之后的{}
中加载$
名称,如下所示:
global parta 1234
global partb 5678
global fullincorrect $parta_$partb
di "$fullincorrect"
global partc 1234
global partd 5678
global fullcorrect ${partc}_${partd}
di "$fullcorrect"
结果
. di "$fullincorrect"
5678
. di "$fullcorrect"
1234_5678
答案 1 :(得分:2)
这也可行:
. global partA 1234
. global partB 5678
. global fullname = "$partA" + "_" + "$partB"
. di "$fullname"
1234_5678
我不特别推荐它,但它是一个解决方案。关键的想法是全局宏保存字符串并+
连接字符串。关键细节是引号不能是宏名称的一部分。这只是因为下划线可以是此问题所引发的宏名称的一部分。