`test.sh` 和 `./test.sh` 有什么细微的区别

`test.sh` 和 `./test.sh` 有什么细微的区别

我有以下脚本:

$ cat test.sh
#! /usr/local/bin/bash
date

运行,

$ test.sh
-bash: test.sh: command not found

有用

$ ./test.sh
Thu Oct 25 18:04:45 CST 2018

尽管如此,我知道这test.sh与 相同./test.sh

$ file test.sh
test.sh: Bourne-Again shell script text executable, ASCII text
$ file ./test.sh
./test.sh: Bourne-Again shell script text executable, ASCII text

test.sh和之间的细微差别是什么./test.sh

答案1

这两种运行命令的方式并不相同。使用./test.sh,您可以test.sh在当前目录中运行脚本。使用test.sh,您可以运行test.sh$PATH.

如果您调用了 script test,那么运行test将使用test可能内置于 shell 中的实用程序(不会产生任何输出),而运行./test将执行您的脚本。

有关的:

相关内容