UNIXの「/usr/ bin / script」コマンドは、シェルセッションの実行中のトランスクリプトを作成します(詳細については、「manscript」を参照してください)。
ただし、スクリプトインスタンス内では、親シェルのenv変数、エイリアスなどを忘れているようです。
次の例は、私が定義した「ll」エイリアスが「script」内で無視される方法を示しています。
zsh> mkdir temp
zsh> cd temp
zsh> alias "ll=ls -alF"
zsh> ll
total 24
drwxr-xr-x 2 me mygroup 4096 Feb 18 13:32 ./
drwxr-xr-x 28 me mygroup 8192 Feb 18 13:32 ../
zsh> script a.out
Script started, file is a.out
$ ll
zsh: command not found: ll
$ exit
Script done, file is a.out
zsh> ll
total 32
drwxr-xr-x 2 me mygroup 4096 Feb 18 13:32 ./
drwxr-xr-x 28 me mygroup 8192 Feb 18 13:32 ../
-rw-r--r-- 1 me mygroup 182 Feb 18 13:32 a.out
では、親シェルからenv設定を継承する「スクリプト」プロセスを取得するにはどうすればよいですか?
[編集:]さて、env変数は忘れられていません。エイリアスだけ。.profileまたは何かを再調達することは機能します...しかし、どうすればそれを自動的に実現できますか?