当~/.bashrc
在登录时继续创建script
会话时出现这种情况,除非被CTRL + C退出,所以我认为特定命令必须有if
来检查我们是否已经已经运行script
会话,因此无法无限期地创建新会话。
答案 0 :(得分:1)
如果您打算做
之类的事情exec script "session.$(date)"
...在可以进行递归的情况下,首先设置一个环境变量,只有在没有设置时才继续:
[[ $- != *i* ]] && [[ -z $SCRIPT_RUNNING ]] && {
export SCRIPT_RUNNING=1
exec script "session.$(date)"
}
... $-
测试跳过非交互式shell; SCRIPT_RUNNING
测试在先前由父进程设置时跳过它。
那就是说 - 如果您出于任何安全目的而这样做,那么它完全不合适。从script
开始.bashrc
意味着记录用户操作的过程由该用户拥有和控制...感兴趣的冲突多吗?这也意味着一个以命令行参数开头的交互式shell被没有它们的一个替换,可能会破坏软件做有趣的事情。