`script(1)`の移植可能な代替品

`script(1)`の移植可能な代替品

ターミナルのインタラクティブ入力に応答するツールからログを生成する必要があるとき(stdoutのティーが何とか壊れている)、このツールを見つけて広告したようにほとんどscript(1)機能します。残念ながら、scriptLinuxでは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"'

関連情報