我正在尝试编写一个将为我启动 Xilinx 程序的 shell 脚本,但我的 source 命令有问题。这是我的脚本,名为xilinx
:
#!/usr/bin/env bash
cd /home/sclukey/Xilinx
source /opt/Xilinx/14.6/ISE_DS/settings32.sh
$@
如果我只是调用xilinx
脚本返回
. /opt/Xilinx/14.6/ISE_DS/common/.settings32.sh /opt/Xilinx/14.6/ISE_DS/common
. /opt/Xilinx/14.6/ISE_DS/EDK/.settings32.sh /opt/Xilinx/14.6/ISE_DS/EDK
. /opt/Xilinx/14.6/ISE_DS/PlanAhead/.settings32.sh /opt/Xilinx/14.6/ISE_DS/PlanAhead
. /opt/Xilinx/14.6/ISE_DS/ISE/.settings32.sh /opt/Xilinx/14.6/ISE_DS/ISE
但是如果我运行xilinx ise
,那么source
命令的输出就会丢失,它只是返回
/usr/local/bin/xilinx: line 4: ise: command not found
我相信这是因为当使用参数调用脚本时源命令没有运行。为什么会这样,我该如何解决?
谢谢
编辑:我发现这是因为settings32.sh
文件使用了$1
参数,并且当使用参数xilinx
调用脚本时,这些参数也会传递给source
破坏settings32.sh
脚本的命令。那么如何阻止参数传递给source
命令呢?