![Bash에서 변수 값 대신 변수 이름을 에코하는 방법은 무엇입니까? [폐쇄]](https://linux55.com/image/36541/Bash%EC%97%90%EC%84%9C%20%EB%B3%80%EC%88%98%20%EA%B0%92%20%EB%8C%80%EC%8B%A0%20%EB%B3%80%EC%88%98%20%EC%9D%B4%EB%A6%84%EC%9D%84%20%EC%97%90%EC%BD%94%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
var
Bash에 변수가 있다고 가정 해 봅시다 . 나는 그것에 가치를 부여할 수 있다. 예를 들어 문자열로 만듭니다.
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