J'ai vu un article ici: Change PS1 after running the 'script' command mais cela n'a pas semblé répondre à la question.Commande de script Linux avec changement PS1
J'essaye d'avoir un script exécutant la commande "script" et change également l'invite (PS1) pour indiquer que le shell est maintenant scripté. Fondamentalement, la PS1 normale est "[UNSCRIPTED] dedans en rouge pour que l'évaluateur sache qu'ils n'utilisent pas une fenêtre scriptée, une fois qu'ils seront prêts à faire leur évaluation, ils exécuteront ce script, la fenêtre sera maintenant scriptée, et Maintenant, cela fonctionne si vous collez les commandes une par une, mais lorsque vous essayez de les jouer dans un script ne fonctionne pas parce que la commande "script" démarre un nouveau processus de sorte que la PS1 La modification s'appliquera uniquement au processus parent (le script shell a été exécuté) et ne prendra effet qu'à la fin du processus "script"
J'ai essayé plusieurs variantes d'arrière-plan du processus de script (&). commandes en séquence (; et & &) mais tous attendent toujours que le processus parent (la commande de script) se termine avant de poursuivre.
Voici les commandes qui fonctionnent si la ligne RAN par ligne (copier/coller), mais je ne peux pas travailler dans un script shell:
script -af /opdata/logs/scripted/script.$$
# SETUP WINDOW ENVIRONMENT
PS1='\d \t \[email protected]\h \[\e[38;5;33m\]\w \[\e[0m\]# '
date -u
date
hostname
ifconfig -a
netstat -nr
uname -a
J'avais un problème en utilisant l'option -c parce que le script se fermait après l'exécution de mes commandes, je ne pensais pas exécuter bash comme dernière commande. –