我正在尝试编写一个shell脚本,它将为我启动Xilinx程序,但是源代码命令有问题。这是我的脚本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
命令呢?
发布于 2013-08-05 16:25:59
它看起来像是/opt/Xilinx/14.6/ISE_DS/settings32.sh
或者source
的脚本之一,它响应命令行参数并吞并它们。试着在搜索之前保存它们,然后删除它们:
#!/usr/bin/env bash
args=$@
shift
cd /home/sclukey/Xilinx
source /opt/Xilinx/14.6/ISE_DS/settings32.sh
$args
发布于 2013-08-05 16:16:19
如果从命令行键入xilinx ise
,则使用脚本自动执行以下命令:
$ cd /home/sclukey/Xilinx
$ source /opt/Xilinx/14.6/ISE_DS/settings32.sh
$ ise
脚本的响应表明路径中没有ise
程序。我会检查一下ise
在哪里,以及settings32.sh
是否为它设置了路径。
https://stackoverflow.com/questions/18062765
复制相似问题