다른 변수가 연결된 변수에 특수 헌장을 할당하려고 합니다.
[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"