linux找不到文件怎么辦?
linux source shell腳本顯示找不到文件
例子:?
[root@localhost?osc]#?sh?a.sh? a.sh:?line?4:?source:?1.sh:?file?not?found [root@localhost?osc]#?cat?a.sh? #!/bin/bash cd?/data/osc/bin/ if?[?-f?1.sh?];then source?1.sh fi
剛開始,還以為權(quán)限問題,然后給權(quán)限,但結(jié)果還是一樣
man source ,找到原因了。source時(shí)找filename的問題。
source 命令找filename是在當(dāng)前的shell環(huán)境下找的,如果沒有反斜線,就在path中找,如果沒有就沒有。
source?filename?[arguments] ??????????????Read??and??execute?commands?from?filename?in?the?current?shell?environment?and?return?the?exit?status?of?the?last?command?exe- ??????????????cuted?from?filename.??If?filename?does?not?contain?a?slash,?file?names?in?PATH?are?used?to?find?the?directory?containing?file- ??????????????name.???The??file??searched??for??in??PATH??need??not?be?executable.??When?bash?is?not?in?posix?mode,?the?current?directory?is ??????????????searched?if?no?file?is?found?in?PATH.??If?the?sourcepath?option?to?the?shopt?builtin?command?is?turned?off,?the??PATH??is??not ??????????????searched.???If??any??arguments??are??supplied,?they?become?the?positional?parameters?when?filename?is?executed.??Otherwise?the ??????????????positional?parameters?are?unchanged.??The?return?status?is?the?status?of?the?last?command?exited?within?the?script??(0??if??no ??????????????commands?are?executed),?and?false?if?filename?is?not?found?or?cannot?be?read.
如下方式都可以:
1、將腳本所在的目錄加到PATH中
2、加上相對(duì)路徑或絕對(duì)路徑
3、就算是當(dāng)前目錄也得加./
推薦:《Linux教程》
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載。
THE END
喜歡就支持一下吧
相關(guān)推薦