У меня есть сценарий ksh, который считывает скрипт профиля с определенным количеством сеансов. Каждая сессия определяет свои собственные параметры, как, например:ksh: Определение имени параметра с другим значением параметра
SESSION_ONE_USER=...
SESSION_ONE_PWD=...
SESSION_TWO_USER=...
...
Скрипт получает параметр SESSION из командной строки, но я просто установить его на примере.
Я хочу, чтобы значение параметра SESSION определить часть другого имени параметра, что мне нужно значение из, как:
SESSION="SESSION_ONE"
USER=${${SESSION}_USER}
PASS=${${SESSION}_PWD}
Это дает мне ошибку компиляции. Я также попытался
GET_USER_PARAM(){
echo ${SESSION}_USER
}
echo $`GET_USER_PARAM`
Но что возвращает $ SESSION_ONE_USER
Я хочу, чтобы вернуть значение параметра SESSION_ONE_USER вместо. Есть ли у кого-нибудь решения?
При присвоении значения переменной мне казалось, что нужно поместить линию eval в функцию и вызвать функцию как SUSER ='SUFUNC', иначе она вернет только имя. Тем не менее, это было именно то, что мне нужно! Спасибо. –
Вам не нужна функция. Кажется, это работает для меня: 'SUSER = blah; ТМП = USER; eval X = \ $ S $ {TMP}; echo $ {X} 'производит« бла ». Нет необходимости в кавычках, но нужно избегать первого '' ''. Котировки станут необходимыми, если переменная, о которой идет речь, содержит пробелы, но вы хотите получить двойные кавычки для этого и все равно избегать '$' ... – twalberg