source命令没有在Linux bash中检测文件

时间:2016-12-16 07:23:19

标签: linux bash

以下是我的Bash脚本的摘录

#!/bin/sh
# Check SPEED parameter validity
if [ "$4" = "SPEED" ] 
then
source ${SIM_DIR}/setEnv.sh speed
elif [ "$4" = "NORMAL" ]
then
    pushd ${SIM_DIR}/scripts
    source setEnv
else
  ERROR "Invalid SPEED|NORMAL parameter ($4)."
  exit 1
fi

在命令行中,我在运行脚本时将选项设为NORMALsetEnv.sh位置中没有名为${SIM_DIR}/scripts的文件。但是有一个名为setEnv的文件,其第一行是#!/bin/bash -x。我收到以下错误:

  

第176行:source:setEnv:找不到文件

有人可以指出我的剧本有什么问题吗?

1 个答案:

答案 0 :(得分:2)

source使用PATH查找来查找不包含斜杠的名称,并且PATH(正确)不包含.,因此不会搜索当前目录为setEnv。使用source ./setEnv

source忽略了shebang线。