3

R を「バッチ モード」で実行すると、interactiveフラグが false に設定されます。これにより、埋め込み/バッチ設定のコンテキストでプロセスを中断するようなユーザー プロンプトが表示されなくなります。見る:

R -e 'interactive()'

を使用すると一部保持されRscriptます。このフラグは、インタラクティブパッケージを使用して手動で設定することもできます。テストするには、次を試すことができます。

R -e 'install.packages("anything")

CRAN ミラーがまだ設定されていないと仮定すると、install.packagesインタラクティブなミラー ピッカーは表示されず、代わりにエラーがスローされて終了します。

ただし、helpor?コマンドは引き続き機能することに気付きました。たとえば、次のコマンドはヘルプ ブラウザを表示しますが、q を押すまで続行しません。

R -e 'help(lm); 1+2'

ただし、出力をファイルに送信する場合、対話型プロンプトは表示されず、出力に完全なヘルプ ドキュメントがダンプされるだけです。

R -e 'help(lm); 1+2' > output.txt

を使用するときに実際に何が起こっているのか、少し混乱していhelpます。R がバッチ モードで実行されている場合でも、対話型のヘルプ ブラウザーが表示されるのはなぜですか? これは の機能ですかR、それとも Debian/Ubuntu フロントエンドの機能ですか? R が入力の使用を待機しているため、Rserve、RInside、JRI などの内部で関数が呼び出されRたときに応答しなくなるリスクはありますか?help

4

1 に答える 1

1

help は実際に新しいプロセス pager を生成します。これは「less」のようなものです。

> help(lm); 1+2
[1]+  Stopped                 R -e 'help(lm); 1+2'
$ ps
  PID TTY          TIME CMD
27735 pts/6    00:00:00 bash
31607 pts/6    00:00:00 R
31615 pts/6    00:00:00 sh
31616 pts/6    00:00:00 pager
31617 pts/6    00:00:00 ps
于 2012-10-23T18:48:30.840 に答える