次のコマンドラインを使用してサンプルJavaプログラムを実行しようとしました。しかし、私はトレーリングパートが何に< /dev/null &
使用されているのか分かりませんか?
java -cp /home/weka.jar weka.classifiers.trees.J48 –t train_file >& log < /dev/null &
次のコマンドラインを使用してサンプルJavaプログラムを実行しようとしました。しかし、私はトレーリングパートが何に< /dev/null &
使用されているのか分かりませんか?
java -cp /home/weka.jar weka.classifiers.trees.J48 –t train_file >& log < /dev/null &
回答:
</dev/null
端末からプログラムの入力を切断します。一部のプログラムは、標準入力が何に接続されているかによって、反応が異なります。redirectionを使用する</dev/null
と、プログラムは、その入力が端末からのものではないことを認識でき、標準入力から読み取ろうとすると、ファイルの終わりを示す通知をすぐに受け取ります。
&
最後の孤独はプログラムをバックグラウンドで実行させます。つまり、シェルプロンプトがすぐに返されます。がないと&
、プログラムの実行が終了したときにのみシェルプロンプトが返されます。
スタンドアロン&
はとは無関係であることに注意してください>&
。>&
プログラムの標準出力とプログラムの標準エラーの両方を、演算子の後ろに指定されたファイル名(ここではlog
)にリダイレクトするリダイレクト演算子(tcsh、bash、zsh内)です。
つまり、このコマンドラインを確認したときにシェルが行うことは次のとおりです。
/dev/null
(nullデバイス)に接続します。log
(ファイルがまだ存在しない場合は作成し、存在する場合は切り捨てます)。java
れた実行可能ファイルを探します$PATH
。-cp
、/home/weka.jar
、weka.classifiers.trees.J48
、–t
、train_file`。