замена строки вместо переменной в оболочке - PullRequest
4 голосов
/ 13 августа 2011

Я передаю строку в качестве аргумента скрипту оболочки. и скрипт оболочки должен сказать мне, является ли переданный аргумент переменной

как то так

if [ ! -z ${$1} ] ; then  
echo yes! $1 is a variable and its value is ${$1}  
fi

но это дает мне плохую замену ошибаться ..

Я точно знаю, что что-то упустил .. выручай!

Например, использование:

$ myscript.sh HOME  
yes! HOME is a variable and its value is /home/raj

Ответы [ 2 ]

4 голосов
/ 13 августа 2011

Синтаксис для этого:

${!VAR}

Пример:

$ function hello() { echo ${!1}; }
$ hello HOME
/home/me
1 голос
/ 13 августа 2011

Нашел здесь: http://www.linuxquestions.org/questions/programming-9/bash-how-to-get-variable-name-from-variable-274718/

Все, что вам нужно сделать:

if [ ! -z ${!1} ]; then
    echo yes $1 is a variable and its value is ${!1}
fi
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...