Bash에서 변수 값 대신 변수 이름을 에코하는 방법은 무엇입니까? [폐쇄]

Bash에서 변수 값 대신 변수 이름을 에코하는 방법은 무엇입니까? [폐쇄]

varBash에 변수가 있다고 가정 해 봅시다 . 나는 그것에 가치를 부여할 수 있다. 예를 들어 문자열로 만듭니다.

var="Test"

내가 원하는 것은 echo이름 var이지 그것이 담고 있는 가치가 아니다 var. (후자를 수행하는 데 사용할 수 있지만 echo $var실제로는 전자를 수행하고 싶습니다.)

이 질문에 대한 SO의 답변을 사용한다고 하는데 echo ${!var}이렇게 하면 에코가 빈 줄만 반환합니다. 예를 들어, 이 bash 스크립트는

#!/bin/bash

echo "Hi"
var="Test"
echo ${!var}
echo "Bye"

다음 출력을 반환합니다.

Hi

Bye

사이에 빈 줄이 하나만 있습니다.안녕하세요그리고안녕히 가세요, 바꾸다변하기 쉬운. 내가 뭘 잘못했나요?

나는 뛰고있어배쉬 4.1.5(1)존재하다우분투 10.04.4.

답변1

이것쉘 매개변수 확장 ${!name@}또는${!이름*}이것은 할 수 있습니다.

$ foo=bar
$ var_name=(${!foo@})
$ echo $var_name" = "$foo
foo = bar

작동하는 동안 이것의 용도를 상상할 수 없습니다 ...

답변2

단순히 정적 변수 이름을 출력하려면 $- 기호를 이스케이프 처리하면 됩니다.

echo \$var

관련 정보