SCRIPT(1) | FreeBSD General Commands Manual | SCRIPT(1) |
名称
script — 端末セッションのタイプスクリプト (typescript) を行う書式
script | [ -adfkpqr][ -t time][ file [ command ...]] |
解説
script ユーティリティは、利用者の端末で印刷 (表示) されたすべてのタイプスクリプト (typescript) を行います。訳注: タイプスクリプトは、タイプ、表示したものを記録する。後で lpr(1) でタイプスクリプトファイルを印刷することができるように、宿題の証拠として対話型セッションのハードコピーの記録を必要とする学生に役に立ちます。引数 file が与えられるなら、 script は、 file にすべての対話を保存します。ファイル名が与えられないなら、タイプスクリプトは、ファイル typescript に保存されます。
引数 command が与えられるなら、 script は、対話型のシェルの代わりにオプションの引数ベクタがある指定されたコマンドを実行します。
次のオプションが利用可能です:
- -a
- 以前の内容を残して、出力を file または typescript に追加します。
- -d
- -p フラグがあるセッションを再生するとき、タイムスタンプが付けられているセッションを再生する場合に、レコード間でスリープしません。
- -f
- filemon(4) を使用して file.filemon または typescript.filemon を作成します。
- -k
- 出力に加えてプログラムに送られたキーもログ記録します。
- -p
- -r フラグで記録されたセッションをリアルタイムで再生します。
- -q
- 静かな (quiet) モードで実行し、開始、停止とコマンド状態メッセージを省略します。
- -r
- 入力、出力とタイムスタンプがあるセッションを記録します。
- -t time
- スクリプト出力ファイルがディスクにフラッシュされる間隔を秒単位で指定します。 0 の値によって、 script は、すべての文字 I/O イベントの後にフラッシュします。デフォルトの間隔は、30 秒です。
スクリプト (記録) は、フォークされたシェル (またはコマンド) が (Bourne シェル ( sh(1)) を終了するために control-D で、または C シェル csh(1) に対しては、 ( ignoreeof が設定されていないなら) exit, logout または control-D で) 終了するとき終ります。
vi(1) のような特定の対話コマンドは、タイプスクリプト (typescript) ファイルにゴミを作成します。 script ユーティリティは、画面を操作しないコマンドで役に立ちます。結果は、指定可能なものではなく、ハードコピー端末をエミュレートするように作られています。
環境変数
次の環境変数が script によって利用されます:- SCRIPT
- SCRIPT 環境変数は、サブシェルに追加されます。 SCRIPT が既にユーザ環境に存在したなら、その値は、サブシェルの中に上書きされます。 SCRIPT の値は、 typescript ファイルの名前です。
- SHELL
- 変数 SHELL が存在するなら、 script によってフォーク (fork) されるシェルは、そのシェルとなります。 SHELL が設定されていないなら、Bourne シェルと想定されます。 (ほとんどのシェルは、この変数を自動的に設定します)。
歴史
script コマンドは、 3.0BSD で登場しました。-d, -p と -r オプションは、 NetBSD 2.0 ではじめて登場し、 FreeBSD 9.2 に移植されました。
バグ
script ユーティリティは、ラインフィードとバックスペースを含めて、ログファイルに すべてを 記録します。これは、純粋なユーザが期待するものではありません。引数の解析互換性の問題のためにスクリプトファイルを指定せずに、コマンドを指定することはできません。
-k モードで実行するとき、エコー消去 (echo cancelling) は、理想から程遠いことです。スレーブ端末モードは、手動のエコーのログ記録を回避するとき、チェックするために ECHO モードがチェックされます。これは、実行されているプログラムが手動エコーを行っているところで、端末が raw モードであるとき、動作しません。
script が端末から 0 バイトを読み込むなら、読み込むデータがあるまで、 1 秒に 1 回、読み込みを試みるときのみ、モードを切り替えます。これは、 script が、0 バイトの読み込みで空回りすることを防ぎますが、ユーザ入力の処理で 1 秒の遅れを引き起こすかもしれません。
October 27, 2012 | FreeBSD |