배시 쉘 스크립트에서 전달받은 인자를 이용해 지역변수를 읽어 들이고 싶은데 방법이 있나요?

익명 사용자의 이미지

배시 쉘 스크립트를 공부하고 있습니다.

궁금한것은 스크립트 실행하면서 aaa.sh ss aa bb 이런식으로 3개의 전달인자를 넘겨줍니다.
그리고 스크립트 파일안에는

ss=CONFIG
aa=SATA
bb=JOIN

이런 3개의 변수를 선언했다고 할때
전달받은 3개의 인자 $1 $2 $3 각각에는 ss aa bb가 들어있을 것이고
이것을 이용해서 CONFIG SATA JOIN을 읽고 싶은데 방법이 있을까요?
궁금합니다.

김정균의 이미지

eval을 이용하는 방법이 있겠죠.

#!/bin/sh
 
get_value() {
    eval "GETVAL=\$$1"
}
 
ss=CONFIG
aa=SATA
bb=JOIN
 
get_value $1
echo $GETVAL

eseo의 이미지

eval 을 사용해 보세요.

#!/bin/sh
 
ss=CONFIG
aa=SATA
bb=JOIN
 
eval A='$'$1
eval B='$'$2
eval C='$'$3
 
echo $A $B $C

---
배려하는 마음을 갖자.

익명 사용자의 이미지

[bushi@rose liboverlay]$ ss=CONFIG
[bushi@rose liboverlay]$ a=ss
[bushi@rose liboverlay]$ echo ${!a}
CONFIG
[bushi@rose liboverlay]$