なぜ'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オプションが指定されていない場合、最初の引数はシェルコマンドを含むファイルの名前と見なされます。

したがって、bash date意味は「dateファイルを読み込み、埋め込みシェルコマンドを実行します」です。date現在のディレクトリにファイルがないと仮定すると、パスが検索され、bashシェル/bin/dateスクリプトではなくバイナリファイルであることが判明し、エラーが発生します。

答え2

-c bash引数をスクリプトとして実行しようとしません。これはスクリプト/bin/dateではないbashため失敗します。

関連情報