TLDR: スクリプト コマンドは、$SHELL の値に従ってサブシェルをフォークして作成し、このセッションからのテキストを記録します。
Ctrl + D
またはexit
、script.sh ファイルの実行が終了した後に終了script
する必要があります。
script
マニュアルページから( http://man7.org/linux/man-pages/man1/script.1.html )
script は、端末に出力されるすべてのタイプスクリプトを作成します。
分岐したシェルが終了すると (Bourne シェルを終了するための control-D (sh(1))、C シェルの終了、ログアウト、または control-d (ignoreeof が設定されていない場合)、csh(1)) でスクリプトが終了します。 )。
したがって、そうする場合
#!/bin/bash
script -a record.txt
mkdir folder
ls
次に、個別にフォークされたサブシェルにいるため、mkdir コマンドは実行されません。ctrl + D
、 またはを使用して終了するとexit
、mkdir
が自動的に実行され、必要なフォルダが作成されます。
ただし、ls は元のシェルで実行され、スクリプトによって作成されたサブシェルでは実行されないため、 command の出力、または コマンドとコマンドls
の発行はrecord.txt ファイルに記録されません。mkdir
ls