我试图将特殊的章程分配给附加了另一个变量的变量。
[root@STAGING scripting]# FILLBLANK=*******
[root@STAGING scripting]# k=1
[root@STAGING scripting]# eval echo \"\${FILLBLANK$k}\"
***
[root@STAGING scripting]#
我如何在这里将输出分配给变量?
[root@STAGING scripting]# a=$(eval echo \"\${FILLBLANK$k}\")
[root@STAGING scripting]# echo $a
= 1 b `echo filledvalue output reference.properties safe.sh sshpass-1.05-
1.el6.x86_64.rpm storefront_properties.sh storefront_properties.sh_bkp
test.sh
[root@STAGING scripting]#
答案1
如果您想创建诸如 等变量foo1
并foo2
使用eval
来扩展其中之一,只需不。 Bash、ksh 和 Zsh 支持数组和关联数组,它们只是为了索引而设计的。看BashGuide 数组简介。
$ foo[0]=aa
$ foo[1]=bb
$ k=1
$ echo "${foo[$k]}"
bb
请注意引号在上面。事实上你的问题也与引号。不是分配给a
,而是打印它(实际上,将其扩展为echo
打印)
$a=* $回显“$a” * $回显$a [一大堆文件名...]
答案2
很难帮助您,因为您没有描述真正的问题,而是向我们展示了至少可以说很奇怪的代码。
但也许这对你有帮助:
FILLBLANK1="*******"
FILLBLANK[1]="*******"
k=1
echo "$FILLBLANK1"
echo "${FILLBLANK[1]}"
eval echo \"\${FILLBLANK$k}\"
a="$(eval echo \"\${FILLBLANK$k}\")"
echo "$a"