我可以全局使用源文件吗?

时间:2017-06-07 18:42:26

标签: bash shell

考虑这个脚本摘录:

tpl文件内容:

FULL_ACCESS_USER_TPL="id=FA_SEND action = OK sender == $EMAIL"

脚本内容

source tpl

EMAILS="foo@domain.tld bar@domain.tld"

for EMAIL in $EMAILS
do
    echo $FULL_ACCESS_USER_TPL
done

期望的输出:

id=FA_SEND action = OK sender == foo@domain.tld
id=FA_SEND action = OK sender == bar@domain.tld

当我运行脚本时,我什么都没得到,但是如果我把source tpl放在循环中,我得到了我想要的东西。

我可以使用'全局'来源文件,以便在整个脚本中使用它们吗?

1 个答案:

答案 0 :(得分:0)

在tpl中创建一个函数,然后调用函数:

$ cat tpl
function FULL_ACCESS_USER_TPL() {

    echo "id=FA_SEND action = OK sender == $EMAIL"
}

$ cat script.sh
source tpl

EMAILS="foo@domain.tld bar@domain.tld"

for EMAIL in $EMAILS
do
    FULL_ACCESS_USER_TPL
done

问题在于,当您使用tpl时,EMAIL未设置。