Bash에서와 같이 POSIX에서 간접 변수 확장을 수행하는 것이 가능합니까?
컨텍스트를 위해 다음을 수행하려고합니다.
for key in ${!map_*}
do
# do something
done
편집 : 명확히하기 위해로 시작하는 쉘 변수에 액세스하고 싶습니다 map_
.
답변
해킹은 다음을 사용하는 것입니다 eval
.
aaa=1
aab=2
aac=3
eval_like() {
pattern=$1
vars=`set |grep "^$pattern.*=" | cut -f 1 -d '='`
for v in $vars; do
eval vval="\$$v"
echo $vval
done
}
for i in `eval_like aa`; do
echo $i
done