내 환경에서는 다음 변수가 설정됩니다.
X=/home
그래서 echo $X
나한테 줬어/home
이제 설정했습니다Y=$X
$Y
나에게 메아리 가 주어졌습니다 $X
.
원하면 /home
사용할 Y
수 있나요 ?
답변1
예, 가능합니다. 이것을 사용하면 원하는 결과를 얻을 수 있습니다
X='/home'
Y=$X
echo "$Y"
원하는 출력을 생성합니다
/home
답변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:~$