ターミナルのインタラクティブ入力に応答するツールからログを生成する必要があるとき(stdoutのティーが何とか壊れている)、このツールを見つけて広告したようにほとんどscript(1)
機能します。残念ながら、script
LinuxではMacと比較して他のオプションが使用されます(おそらくBSDバージョン?)。
script
ポータブルスクリプトで同様の機能を使用したいと思います。同様の操作を実行できる他のツールは何ですか(GNU screen
)?
答え1
これはLinuxおよびFreeBSD / macosベースのプラットフォームで機能します。
myscript() {
if script --help >/dev/null 2>&1
then
SHELL=/bin/sh script -c "$2" -- "$1"
else
script -- "$1" /bin/sh -c -- "$2"
fi
}
使用法
myscript <file> <sh-code>
コマンドコンポーネントが単純なコマンドではない場合は、コマンドコンポーネントを参照する必要があります。例えば、
myscript myfile 'a=$(date); echo "Today is $a"'