为什么'bash` 运行失败?

为什么'bash` 运行失败?

为什么bash <command>运行失败?

$ bash date
/bin/date: /bin/date: cannot execute binary file

$ /bin/date
Fri Mar 18 05:59:24 EDT 2016

$ bash -c date
Fri Mar 18 06:00:39 EDT 2016

答案1

来自手动的:

如果在选项处理之后仍有参数,并且没有提供-c-s选项,则假定第一个参数是包含 shell 命令的文件的名称。

所以bash date意思是“读取date文件并执行它包含的shell命令”。假设date当前目录中没有文件,bash搜索路径并发现/bin/date它是二进制文件而不是 shell 脚本,因此出现错误。

答案2

-c bash尝试将参数作为其脚本运行。这/bin/date不是一个bash脚本,所以它失败了。

相关内容