(Ubuntu)Linux:是否有可能发现你是否在§script§命令中运行?

时间:2014-09-09 11:46:43

标签: linux bash shell ubuntu scripting

~/.bashrc在登录时继续创建script会话时出现这种情况,除非被CTRL + C退出,所以我认为特定命令必须有if来检查我们是否已经已经运行script会话,因此无法无限期地创建新会话。

1 个答案:

答案 0 :(得分:1)

如果您打算做

之类的事情
exec script "session.$(date)"

...在可以进行递归的情况下,首先设置一个环境变量,只有在没有设置时才继续:

[[ $- != *i* ]] && [[ -z $SCRIPT_RUNNING ]] && {
  export SCRIPT_RUNNING=1
  exec script "session.$(date)"
}

... $-测试跳过非交互式shell; SCRIPT_RUNNING测试在先前由父进程设置时跳过它。

那就是说 - 如果您出于任何安全目的而这样做,那么它完全不合适。从script开始.bashrc意味着记录用户操作的过程由该用户拥有和控制...感兴趣的冲突多吗?这也意味着一个以命令行参数开头的交互式shell被没有它们的一个替换,可能会破坏软件做有趣的事情。