Bash 我可以在全球范围内使用源文件吗?
考虑以下脚本摘录: 第三方物流文件内容:Bash 我可以在全球范围内使用源文件吗?,bash,shell,Bash,Shell,考虑以下脚本摘录: 第三方物流文件内容: 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@doma
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
当我运行脚本时,我什么也得不到,但是如果我将
源tpl
放入循环中,我就会得到我想要的
我是否可以使用源文件,比如“全局”,以便在整个脚本中使用它们?在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
没有设置。tpl中有什么?脚本似乎不完整,因为如果tpl
是源代码,输出不能为空,而我不理解这个问题,脚本tpl的路径应该是绝对的,否则取决于当前的工作目录“当我运行脚本时,我什么也得不到”-与您发布的脚本不一样。我很抱歉弄乱了。tpl文件的内容是FULL\u ACCESS\u USER\u tpl=“id=FA\u SEND action=OK sender=$EMAIL”