SCRIPT
Section: User Commands (1)
Updated: June 2014
Index
Return to Main Contents
名前
script - 端末セッションの写し (typescript) を作成する。
書式
script
[options]
[file]
説明
script
は端末に表示されたものすべての写し (typescript) を作成する。
これは宿題を出された学生が、インタラクティブなセッションの
ハードコピーを必要とする場合などに便利だろう。
記録された typescript ファイルを、後で
lpr(1)
などを使って印刷すれば良い。
引き数
file
が指定されると、
script
はすべての記録を
file
に保存する。
ファイル名が与えられなければ、写しは
typescript
というファイルに保存される。
オプション
size 引数の後ろに倍数の拡張子
KiB (=1024), MiB (=1024*1024), GiB, TiB, PiB, EiB, ZiB, YiB を
付けることができる
("iB" はオプションであり、つまり "K" は "KiB" と同じ意味である)。
また、拡張子
KB (=1000), MB (=1000*1000), GB, TB, PB, EB, ZB, YB
を付けることもできる。
- -a, --append
-
出力を
file
または
typescript
に追加 (append) する。
以前の内容が保存される。
- -c, --command command
-
インタラクティブなシェルではなく、
command
を実行する。
標準出力が端末 (tty) でないと動作が変わってしまうプログラムの出力を、
script が簡単に記録できるようにする。
- -e, --return
-
子プロセスの終了コードを返す。
bash でのシグナル終了と同じ形式で、終了コードは 128+n になる。
子プロセスの終了コードは、常に typescript ファイルに格納される。
- -f, --flush
-
書き込みをするごとに出力をフラッシュする。
これは遠隔で共同作業をする場合に良い。
一方の人が `mkfifo foo; script -f foo' を実行した場合、
もう一方の人は、`cat foo' を使うことにより、
何が実行されているかをリアルタイムで監視することができる。
- --force
-
typescrpt ファイルがハードリンクやシンボリックリンクであっても、
デフォルトの出力先を許可する。
コマンドはシンボリックリンクを辿る。
- -o, --output-limit size
-
typescript のサイズを制限し、ファイルを
size
に切り詰めて、サイズを超過した場合に子プロセスを停止する。
計算されるファイルサイズには、
script
コマンドが子プロセスの出力の前に付ける開始メッセージと、
後に付ける終了メッセージが含まれない。
バッファリングのために、結果の出力ファイルは指定した値より
大きくなる可能性がある。
- -q, --quiet
-
寡黙な動作にする (開始と終了メッセージを標準出力に書き出さない)。
- -t[file], --timing[=file]
-
タイミングデータを標準エラーに出力する。
file
が指定された場合は、ファイルに出力する。
このデータはスペースで区切られた 2 つのフィールドからなる。
1 番目のフィールドは、前の出力からの経過時間を表す。
2 番目のフィールドは、そのときに何文字出力されたかを表す。
この情報は、タイピングと出力の実際の遅延時間で、
写しを再現するために使われる。
- -V, --version
-
バージョン情報を表示して、終了する。
- -h, --help
-
ヘルプを表示して、終了する。
注意
script は fork されたシェルが終了したときに記録を終える
(Bourne シェル
(sh(1))
を終わるには
control-D
を入力する。
C シェル
(csh(1))
なら
exit,
logout,
control-d
のいずれかを入力する。
ただし
control-d
が有効なのは
ignoreeof
がセットされていない場合である)。
vi(1)
のようなインタラクティブなコマンドでは、
typescript ファイルにゴミができることがある。
script
は画面を操作しないコマンドを扱ったときに最もうまく動作する。
その場合の結果は、ハードコピー端末をエミュレートしたものとなる。
script
を対話的でないシェルで実行するのは推奨されない。
script
の内部シェルは、常に対話的であり、シェルが対話的でない場合、
予期しない結果になる可能性がある。
script
をシェルの初期化ファイルで使う場合、無限ループに入るのを
避けなければならない。
例として、以下の .profile ファイルを使うことができる。
これは、ログインシェルからのみ読み込まれる。
-
-
if test -t 0 ; then
script
exit
fi
script
はあなたが思うより多くの入力を読み込む可能性があるので、
コマンドのパイプから
script
を使うことも避けるべきである。
環境変数
script
は以下の環境変数を用いる。
- SHELL
-
環境変数
SHELL
が定義されていると、
script
が fork するシェルはそれになる。
SHELL
が定義されていなければ、
Bourne シェルが用いられる。
(ほとんどのシェルはこの環境変数を自動的にセットする。)
関連項目
csh(1)
(history
メカニズムに関する部分),
scriptreplay(1)
履歴
script
コマンドは 3.0BSD で登場した。
バグ
script
はラインフィードやバックスペースも含め、
すべて
をログファイルに書きこむ。
これは普通のユーザが期待するものとは異なるかもしれない。
script
は元々対話的な端末のセッションのために設計されている。
標準入力が端末でない場合 (例えば、echo foo | script)、
セッションがハングする可能性がある。
これは、script セッション内の対話シェルが EOF を見つけられず、
script
がセッションをクローズする手がかりがないためである。
より詳細な情報は「注意」のセクションを参照すること。
入手方法
script コマンドは、util-linux パッケージの一部であり、
Linux Kernel Archive
から入手できる。
Index
- 名前
-
- 書式
-
- 説明
-
- オプション
-
- 注意
-
- 環境変数
-
- 関連項目
-
- 履歴
-
- バグ
-
- 入手方法
-
This document was created by
man2html,
using the manual pages.
Time: 15:17:24 GMT, July 30, 2019