Typescript
如何知道你是否在打字稿中?
我正在使用該
script
命令將終端的所有輸出保存到一個名為typescript
. 或者script foo
保存到文件foo
中。現在,假設我正在一個接一個地輸入命令,但我忘記了我是否在打字稿中。
我怎樣才能知道我是否在打字稿中?
也許與:
if lsof -tac script "$(tty)" > /dev/null; then echo "I'm running under script" else echo "I'm not" fi
您可以添加如下內容:
lsof -tac script "$(tty)" > /dev/null && PS1="[script] $PS1"
對於您的
~/.zshrc
or~/.bashrc
,因此有關您是否在其中的資訊script
將在您的 shell 提示符上可見。或者,如果您不能保證
lsof
已安裝,您可以這樣做(假設未修改 IFS):terminal=$(ps -o comm= -p $(ps -o ppid= -p $(ps -o sid= -p "$$"))) [ "$terminal" = script ] && PS1="[script] $PS1"
啟發式方法是獲取會話領導者的父級的命令名稱,通常是終端仿真器(
xterm
,script
,screen
…)。