echo 질문입니다..

qaz123의 이미지

쉘스크립트에서 환경변수 이름을
read x y로 입력받아서
환경변수 값을 출력하고 싶은데
echo $$y 이렇게 출력하게 되면 다른 값이 나와서 어떻게 해야되나요??ㅜ

chanik의 이미지

$$ 말고 $를 쓰시면 됩니다.

$ read x y
asdf fdsa
$ echo $x
asdf
$ echo $y
fdsa

$$는 bash shell의 pid를 반환하므로 아래와 같이 의도와 다르게 동작했을 것입니다.

$ echo $$
2283
$ ps
  PID TTY          TIME CMD
 2283 pts/0    00:00:00 bash
15603 pts/0    00:00:00 ps
$ echo $$x
2283x
chanik의 이미지

제가 질문을 섯부르게 읽었네요.
아래의 익명님 답글이 맞겠습니다.

익명 사용자의 이미지

아마도 이런 것을 바라신 듯.

$ export env1=env1_value
$ export env2=env2_value
$ read x y
env1 env2
$ echo $x $y
env1 env2
$ echo ${!x}
env1_value
$ echo ${!y}
env2_value