详细描述一下:
我有一个Shell脚本,假设名为a.sh ,里面包含用点命令调用的语句,例如:
. XXX.sh
重点是因 调用a.sh脚本的方式不同,结果也不同:
如果使用 点命令 a.sh 这个就能正常运行。
但如果使用 ./a.sh 就会报错,错误为:/bin/sh: 5: export: -march: bad variable name
==========分割线================================
具体情况是,a.sh脚本内容如下:
. $SVP_SYSTEM_SDK_PATH/environment-setup-cortexa7hf-neon-vfpv4-poky-linux-gnueabi
if [ -e "$SVP_SYSTEM_SDK_PATH/sysroots/x86_64-oesdk-linux/environment-setup.d/qt5.sh" ]; then
. $SVP_SYSTEM_SDK_PATH/sysroots/x86_64-oesdk-linux/environment-setup.d/qt5.sh
fi
我在调用a.sh脚本时,如果使用 ./a.sh 就会报错,如果使用 . a.sh 就能正常运行。
我知道点命令等同于source命令,都是不创建新的shell,只在调用命令所在的shell中运行。但为何会出现这种情况?