wusuobupo
慕长生
2017-11-22 11:18

使用点命令调用包含点命令调用语句的Shell脚本出错

10
  • 点命令
  • 脚本
  • source命令
  • shell

详细描述一下:
我有一个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中运行。但为何会出现这种情况?

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

1条回答