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
ため失敗します。