변수 내의 변수 에코

변수 내의 변수 에코

내 환경에서는 다음 변수가 설정됩니다.

X=/home

그래서 echo $X나한테 줬어/home

이제 설정했습니다Y=$X

$Y나에게 메아리 가 주어졌습니다 $X.

원하면 /home 사용할 Y수 있나요 ?

답변1

예, 가능합니다. 이것을 사용하면 원하는 결과를 얻을 수 있습니다

X='/home'
Y=$X
echo "$Y"

원하는 출력을 생성합니다

/home

더 알아보기http://tldp.org/LDP/abs/html/special-chars.html

답변2

변수가 평가되는 것을 방지하기 위해 작은따옴표를 사용하고 str로 남겨두었을 수도 있습니다!

이것을 유용하게 만들 수 있습니다기능bashrc 또는 필요한 곳 ​​어디든

setenv () 
{ 
    (($#)) && {
        [[ $# -gt 1 ]] && {
            local v=$1
            shift
            case "$@" in 
                *'('*) #check if array 
                    eval `echo $v=$@` ;
                    ;;
                *)
                    eval `echo $v="$@"` ;
                    ;;
            esac
        } || {
            eval echo "\$$1"
        }
    } || {
        echo "$FUNCNAME  set|get var|arr"
    }
}


younes@h:~$ setenv 
setenv set|get var|arr
younes@h:~$ setenv foo 'bar baz'
younes@h:~$ setenv foo
bar baz
younes@h:~$ setenv foo '(foo bar baz)'
younes@h:~$ setenv foo
foo
younes@h:~$ setenv {foo[@]}
foo bar baz
younes@h:~$ setenv {foo[0]}
foo
younes@h:~$ setenv {foo[1]}
bar
younes@h:~$ setenv {foo[2]}
baz
younes@h:~$ setenv {#foo[@]}
3
younes@h:~$

관련 정보