无法在当前目录中提供脚本

时间:2013-02-15 07:21:08

标签: linux bash sh

显然,如果该脚本在当前目录中,我不能source脚本。例如,

# source some/dir/script.sh
Ok

工作正常,但如果我和脚本在同一个目录中,则会出错:

# cd some/dir
# source script.sh
-sh: source: script.sh: file not found

是什么给出的?这是改变目录的唯一方法吗?

我在Angstrom Linux上使用bash v4.2.10,如果这是相关的。

3 个答案:

答案 0 :(得分:15)

引用源手册页:

  

源文件名[参数]

     

...

     

如果filename不包含斜杠,则为文件   PATH中的名称用于查找包含文件的目录 -   名。

所以... source正试图在script.sh中包含的文件夹中搜索PATH

如果要在当前文件夹中获取文件,请使用

source ./script.sh

答案 1 :(得分:1)

使用绝对路径 - source /root/path/to/some/dir/script.sh - 应该对你进行排序。

答案 2 :(得分:0)

当文件格式错误时,可能会发生这种情况。我通过Windows通过FTP下载了Korn Shell脚本。我可以编辑它,但是在尝试运行它时出现“找不到[没有这样的文件或目录]”的信息。原来它是DOS格式的,当我在vi中进行编辑时,在文件名行中指出了这一点。当我重新通过FTP将其传输为ASCII码后,它运行良好。