`source .../settings.csh` 无法从 `sh ./test.sh` 运行

`source .../settings.csh` 无法从 `sh ./test.sh` 运行

我想使用setiin64.csh该命令获取 Xilinx ise 文件source

我有

source /home/xilinx/ise_14.5/14.5/ISE_DS/settings64.csh

在另一个文件中,test.sh.所以我只想运行test.sh文件

sh ./test.sh 

但当我这样做时,我并没有获得 Xilinx ISE 14.5 版本which ise

如果我执行命令

source /home/xilinx/ise_14.5/14.5/ISE_DS/settings64.csh

直接在终端中就可以正常工作了。

答案1

除非setiin64.cshC-shell 脚本与 兼容sh,否则 shellsource /home/xilinx/ise_14.5/14.5/ISE_DS/settings64.cshsh不应工作。但你这么说,所以我必须相信你的话。

您不能编写一个脚本来获取该文件并运行它sh test.sh并期望环境变量将在当前的外壳环境。

设置sh test.sh一个新的环境,在其中该source命令将用于源setiin64.csh(我仍然很难相信这实际上会起作用,它是一个csh脚本)。一旦test.sh执行完成,这个新环境将被删除。其中设置的任何变量都不会传输到最外层环境(您的 shell 会话)。

你可以

source test.sh

但这正是您从一开始就做的事情,您也可以获取一个符号链接来/home/xilinx/ise_14.5/14.5/ISE_DS/settings64.csh代替。

最好的解决方案可能只是从命令行(或从 shell 初始化文件之一)获取文件。

相关内容