< /dev/null EOF をプログラムに即座に送信するために使用されるため、入力を待機しません (/dev/null 、ヌルデバイスは、書き込まれたすべてのデータを破棄する特別なファイルですが、書き込み操作が成功したことを報告し、そこから読み取るプロセスにデータを提供せず、すぐに EOF を生成します)。 & 前のプロセスをバックグラウンドで実行するために使用される特別なタイプのコマンド セパレータです。
プログラムが呼び出されていることを知らなければ、なぜこの方法で実行する必要があるのか 直接わかりません.
</dev/null プログラムの入力を端末から切断します。一部のプログラムは、標準入力が何に接続されているかによって、異なる反応を示します。リダイレクト </dev/null あり
孤独な & 最後に、プログラムがバックグラウンドで実行されます。これは、シェル プロンプトがすぐに返されることを意味します。 & なし 、プログラムの実行が終了したときにのみシェル プロンプトが返されます。
スタンドアロンの & >& とは無関係です . >& プログラムの標準出力とプログラムの標準エラーの両方を、演算子の後に指定されたファイル名 (ここでは log ).
つまり、このコマンド ラインを検出したときにシェルが行うことは次のとおりです。
- バックグラウンドでプロセスを開始します。バックグラウンド プロセス:
- 標準入力を
/dev/nullに接続 (null デバイス) - 標準出力と標準エラーの両方を
logというファイルに接続します (ファイルがまだ存在しない場合は作成し、存在する場合は切り捨てます)。 javaという実行ファイルを探します$PATHで .- そのファイルを 5 つの引数
-cpで実行します 、/home/weka.jar、weka.classifiers.trees.J48、–t, train_file`.
- 標準入力を