<分区>
运行此命令(其中 a.out
是有效的 C 可执行文件):
. a.out
...导致此错误:
bash: .: a.out: cannot execute binary file
但是,运行以下命令:
./a.out
...成功执行 C 二进制可执行文件。
显然,这里有两种类型的执行,有什么不同?
标签 c bash shell executable
<分区>
运行此命令(其中 a.out
是有效的 C 可执行文件):
. a.out
...导致此错误:
bash: .: a.out: cannot execute binary file
但是,运行以下命令:
./a.out
...成功执行 C 二进制可执行文件。
显然,这里有两种类型的执行,有什么不同?
最佳答案
shell 使用空格分隔要运行的命令及其参数。
在第一个示例中,要运行的命令是 .
,参数为 a.out
。 .
命令是 source
的 shell 快捷方式,它将包含 shell 命令的文件的名称作为其第一个参数,并在当前 shell 中运行这些命令。此命令失败,因为 a.out
是二进制文件,而不是 shell 脚本。
在第二个例子中,运行的命令是./a.out
,意思是运行当前目录下的文件a.out
。
关于c - 之间有什么区别。和./在bash中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48691687/