在bash中设置env变量t秒

在bash中设置env变量t秒,bash,setenv,Bash,Setenv,是否有办法将env变量设置为特定的秒数,然后重置。我有一个读取env变量的脚本。如果设置了,脚本应该退出。基本上,我正在尝试构建一个休眠算法。它在接收信息时不断地发送信息。然而,有时我需要让它们休眠t秒,在这t秒期间,它将缓冲所有传入的消息,当计时器t过期时,发送缓冲区内容。我的方法是使用 if [ $MY_ENV=set ] then buffer fi 但是,此env变量不能是特定于shell的。它应该适用于从同一台机器上不同位置登录的每个用户。如果它不是特定于shell的,我会

是否有办法将env变量设置为特定的秒数,然后重置。我有一个读取env变量的脚本。如果设置了,脚本应该退出。基本上,我正在尝试构建一个休眠算法。它在接收信息时不断地发送信息。然而,有时我需要让它们休眠t秒,在这t秒期间,它将缓冲所有传入的消息,当计时器t过期时,发送缓冲区内容。我的方法是使用

if [ $MY_ENV=set ]
  then 
  buffer
fi

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

如果它不是特定于shell的,我会为此使用某种锁文件。如果锁文件存在,则相当于设置了var。您可以安排在t秒后删除它


查看
lockfile
命令。

无论计时部分如何,都无法从进程外部在已运行进程的环境中设置变量


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

是的,您的方法更简单、更容易,我计划编写一个脚本,将(比如flag)variable=1的内容设置为t秒,然后我的主脚本应该读取文件的内容(其中varialbe被设置或取消设置)。