【发布时间】:2017-05-05 14:05:53
【问题描述】:
在这里看到一篇帖子:Change PS1 after running the 'script' command,但似乎没有回答问题。
我正在尝试让脚本运行“脚本”命令,并更改提示 (PS1) 以指示 shell 现在已编写脚本。基本上,普通的 PS1 中有“[UNSCRIPTED] 红色,以便评估者知道他们没有使用脚本窗口。一旦他们准备好进行评估,他们将运行这个脚本,窗口现在将被脚本化,并且提示将更改以指示此类。
现在,如果您将命令一一粘贴,它可以工作,但是当尝试将它们角色放入脚本时不起作用,因为“脚本”命令会启动一个新进程,因此 PS1 更改将仅适用于父进程( shell脚本是从中运行的)并且在退出“脚本”进程之前不会生效。
我已经尝试了许多变体的后台脚本进程 (&),按顺序运行命令 (; 和 &&),但这些都在继续之前等待父进程(脚本命令)完成。
如果逐行运行(复制/粘贴),以下是有效的命令,但我无法在 shell 脚本中工作:
script -af /opdata/logs/scripted/script.$$
# SETUP WINDOW ENVIRONMENT
PS1='\d \t \u@\h \[\e[38;5;33m\]\w \[\e[0m\]# '
date -u
date
hostname
ifconfig -a
netstat -nr
uname -a
【问题讨论】: