我有一个像这样的 bash 脚本“build.sh”:
# load Xilinx environment settings
source $XILINX/../settings32.sh
cp -r "../../../EDK/platform" "hw_platform"
if [ $# -ne 0 ]; then
cp $1/system.xml hw_platform/system.xml
fi
echo "Done"
通常我将它作为“./build.sh”运行并执行“源”语句以正确设置环境变量。有时我需要让脚本从其他地方复制文件,我将其运行为“./build.sh ~/alternative_path/”;我的脚本通过检查 $# 与 0 来检查是否存在 cmd 行参数。
当我这样做时,脚本开头的“源”语句以某种方式被跳过,并且构建失败。我在“源”之前和之后放置了两个“回声”,我看到回声语句被执行。
目前我通过“source $XILINX/../settings32.sh; build.sh”规避了这个问题。但是,请告知我在脚本中做错了什么?谢谢。