scriptコマンドを用いて10秒間のログを保存したい

投稿者: Anonymous

scriptコマンドでログ取得を開始し、10秒後にexitしようとしています

#!/bin/sh    
script [ログファイル名]
screen /dev/tty.usbserial* 115200
sleep 10 ; exit

下記のような結果になってしまします。

Script started, output file is [ログファイル名]
bash-3.2$ 

解決

script -c '(sleep 10; kill $$)& screen'

-cオプションがあるscriptでしたら、こんな感じでよいと思います。util-linuxに含まれるscriptでLinux上でテストしました。
まずサブシェルをバックグラウンドで起動し、10秒後に自分をkillするようにしておきます。その後本命の対話コマンドを起動します。

-c オプションに与える引数はシングルクォートで囲っています。そうしないと$$scriptを起動したシェルのプロセスIDになってしまいます。)

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *