Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
有没有办法将环境变量设置为一定的秒数然后重置。我有一个读取 env 变量的脚本。如果设置了,脚本应该退出。基本上我正在尝试建立一个贪睡算法。例如。它在收到消息时继续发送消息。但是有时我需要让它们打盹 t 秒,在这 t 秒内它会缓冲所有传入的消息,当计时器 t 到期时,发送缓冲区内容。我的方法是使用
if [ $MY_ENV=set ] then buffer fi
但是,此环境变量不能是特定于 shell 的。它应该适用于从同一台机器上不同位置登录的每个用户。
如果它不应该是特定于 shell 的,我会为此目的使用某种锁定文件。如果锁定文件存在,则相当于设置了您的 var。您可以安排某些内容在 t 秒后将其删除。
看lockfile命令。
lockfile
无论计时部分如何,都无法从该进程外部在已经运行的进程的环境中设置变量。
您需要为此使用文件系统。例如,如果它是特定于用户的,它可以是用户主目录中的一个文件。