Я пытаюсь сделать мои сценарии более универсальными и, следовательно, пытаюсь передать параметр. У меня есть файл конфигурации, который содержит переменные (которые используются в скриптах) и в скриптах, я источник (исходная команда) файл в других сценариях (ksh).Двойной параметр в ошибке металирования скриптов оболочки
Файл конфигурации содержит:
p2020_m23_ORACLE_USERNAME=sanjeeb
параметров для скрипта p2020_m23
.
КШ сценарий:
export SOURCE_CD=$1
export CONFIG_FILE=/user/spanda20/dbconfig.txt
source $CONFIG_FILE
USERNAME=${${SOURCE_CD}_ORACLE_USERNAME} << **This throws error** >>
USERNAME=$p2020_m23_ORACLE_USERNAME <<< **This gives correct result** >>
ручной тест:
[spanda2 config]$ export SOURCE_CD=p2020_m23
[spanda2 config]$ export m23_ORACLE_USERNAME=sanjeeb
[spanda2 config]$ export USERNAME=${${SOURCE_CD}_ORACLE_USERNAME}
-bash: USERNAME=${${SOURCE_CD}_ORACLE_USERNAME}: bad substitution
См. [Bash FAQ 006] (http://mywiki.wooledge.org/BashFAQ/006) (он также рассказывает о ksh) для всей этой темы. –