我们有一个第 3 方调度程序,它在 bash 中运行我们作业的 shell 脚本之一。
当调用 shell 脚本时,它会在命令行上将调度程序中的环境变量设置为$1
、$2
、等。$3
来自我们的调度程序我们有:
FILE_PATH1="/opt/shared/script1.sh"
FILE_PATH2="/opt/shared/script2.sh"
PROCESS_ID="SYNC1"
TYPE_RELN_IDS="520"
所以,在我们的脚本中我有:
export FILE_PATH1="$1"
export FILE_PATH2="$2"
...
export PROCESS_ID="${11}"
export TYPE_RELN_IDS="{$12}"
...
echo "PROCESS_ID =" $PROCESS_ID
echo "TYPE_RELN_IDS =" $TYPE_RELN_IDS
对于 shell 脚本运行时输出,我得到:
PROCESS_ID = SYNC1
TYPE_RELN_IDS = {/opt/shared/script1.sh}
而不是 520 TYPE_RELN_IDS
。我缺少的第 12 个环境变量限制是否有问题?
答案1
看起来第 12 个变量中的美元符号位置错误。
export TYPE_RELN_IDS="{$12}"
应该export TYPE_RELN_IDS="${12}"