为什么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
脚本,所以它失败了。