在bash中设置env变量t秒

时间:2014-12-02 12:26:58

标签: bash setenv

有没有办法将env变量设置为特定的秒数,然后重置。我有一个读取env变量的脚本。如果已设置,则脚本应退出。基本上我正在尝试构建一个贪睡算法。例如。它会在收到消息时继续发送消息。但是有时我需要将它们暂停,比如t秒,在这些t秒期间它会缓冲所有传入的消息,当计时器t到期时,发送缓冲区内容。我的方法是使用

if [ $MY_ENV=set ]
  then 
  buffer
fi

但是这个env变量不能是特定于shell的。它应该适用于从同一台计算机上的不同位置登录的每个用户。

2 个答案:

答案 0 :(得分:1)

如果它不应该是特定于shell的,我会为此目的使用某种锁文件。如果锁定文件存在,那就等于你设置的var。您可以安排一些事情在t秒后删除它。

查看lockfile命令。

答案 1 :(得分:1)

无论时间部分如何,都无法在该流程外部的已经运行的流程环境中设置变量。

您需要使用文件系统。如果它是特定于用户的,则它可以是用户主目录中的文件,例如。