gpt4 book ai didi

更改 PS1 的 Linux 脚本命令

转载 作者:太空狗 更新时间:2023-10-29 11:49:47 24 4
gpt4 key购买 nike

在这里看到一个帖子: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

最佳答案

你可以运行

script -af /tmp/script.out -c "export PS1='\d \t \u@\h \[\e[38;5;33m\]\w \[\e[0m\]# '; date -u; date; hostname; ifconfig -a; netstat -nr; uname -a; bash --norc"

然后运行 ​​bash 而不解析任何 rc 文件,因此导出的 PS1 没有改变。

关于更改 PS1 的 Linux 脚本命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42836749/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com