2016-12-16 32 views
0

这里是我的bash脚本源命令在Linux中的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 

在命令行中,我给的选项,NORMAL当我运行该脚本的摘录。 ${SIM_DIR}/scripts位置中没有任何文件叫setEnv.sh。然而有一个文件叫做setEnv,它的第一行是#!/bin/bash -x。我收到以下错误:

line 176: source: setEnv: file not found

有没有人能够指出我的脚本出了什么问题?

+3

引用变量:'“$ {SIM_DIR}”' –

+0

您可以尝试在您的脚本中添加一个'pwd'命令和'ls'命令,以清楚地看到它正在运行的目录以及哪些文件真的存在那里。 –

+2

shebang如果您输入文件,'#!/ bin/bash -x'不起作用。 –

回答

2

source使用PATH查找发现不包含斜杠的名字,和你的PATH(正确)不包含.,所以当前目录没有搜索setEnv。使用source ./setEnv

该shebang行被source忽略。