当 ~/.bashrc
在登录时不断创建 script
session 时出现这种情况,除非被 CTRL+C 退出,所以我认为特定命令必须有一个 if
检查我们是否已经在运行 script
session ,这样它就不会无限期地创建新的 session 。
最佳答案
如果你打算做类似的事情
exec script "session.$(date)"
...在可以递归的情况下,先设置一个环境变量,没有设置才继续:
[[ $- != *i* ]] && [[ -z $SCRIPT_RUNNING ]] && {
export SCRIPT_RUNNING=1
exec script "session.$(date)"
}
...$-
测试在非交互式 shell 上跳过了这个; SCRIPT_RUNNING
测试在先前由父进程设置时会跳过它。
就是说——如果您出于任何类型的安全目的而这样做,那是完全不合适的。从.bashrc
启动script
意味着记录用户操作的进程由该用户拥有和控制……利益冲突,很多吗?这也意味着以命令行参数启动的交互式 shell 将被一个没有命令行参数的 shell 取代,这可能会破坏软件做有趣的事情。
关于linux - (Ubuntu) Linux : Is it possible to find out if you're running inside §script§ command?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25743847/