Dan*_*yle 7 c bash shell executable
运行此命令(其中a.out是有效的C可执行文件):
. a.out
Run Code Online (Sandbox Code Playgroud)
...导致此错误:
bash:.:a.out:无法执行二进制文件
但是,运行以下命令:
./a.out
Run Code Online (Sandbox Code Playgroud)
...成功执行C二进制可执行文件.
很明显,这里有两种类型的执行,有什么不同?
dbu*_*ush 18
shell使用空格来分隔要运行的命令及其参数.
在第一个示例中,要运行的命令.的参数为a.out.该.命令是shell快捷方式source,它将包含shell命令的文件的名称作为其第一个参数,并在当前shell中运行这些命令.此命令失败,因为a.out它是二进制文件,而不是shell脚本.
在第二个示例中,要运行的命令是./a.out,这意味着运行a.out驻留在当前目录中的文件.