2016-12-16 29 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忽略。