设置env变量的Bash脚本在使用source时不起作用,只能与Bash-c一起使用



英特尔提供的oneAPI工具包需要一个bash脚本来向$PATH和其他环境变量添加几个可执行文件/库。为此,文档指示将提供的脚本作为运行

source setvars.sh

然而,在一个新的Ubuntu 20.04系统(由英特尔OneAPI支持(上,我得到了以下错误。

$ source setvars.sh
:: ERROR: No env scripts found: No "env/vars.sh" scripts to process.
This can be caused by a bad or incomplete "--config" file.
Can also be caused by an incomplete or missing oneAPI installation.

在浏览了论坛之后,我发现了一个适用于zsh类型shell的变通方法。根据这些提示,当我运行时

bash -c 'source setvars.sh'

没有错误报告,脚本运行良好。不出所料,执行bash -c命令后,env变量不可用。

对此的一个解决方法是进行

bash -c 'source setvars.sh; exec bash'

每次我打开一个新的终端。这很烦人。

我想在.bashrc.profile中的某个地方找到setvars.sh,然后忘记它

为什么source setvars.sh不工作,而bash -c 'source setvars.sh'在这里运行时没有错误。

回答我自己的问题。这是cd命令别名为的问题cd "$@" && ls。在别名定义解决问题之前获取setvars.sh脚本。

请参阅此处"英特尔社区"论坛上的讨论。

相关内容

最新更新