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