linux - 我如何在 Zsh 中使用 float "delay"?

标签 linux shell zsh sleep

在 Zsh 中有一个wait(对于一个进程或作业)命令,一个while(Seconds == Delay)命令,和一个sched(如果 shell 仍在运行则稍后执行)命令,但没有“延迟”命令。如果有的话,我担心这将仅限于整秒延迟。我需要一个“延迟”语句,它基本上可以导致过程/任务在固定点数指定的时间内或直到某个时钟时间几乎不做任何事情。

大多数脚本会使用“sleep”,但我希望在不打开 IO 的情况下运行延迟计时器;我正在寻求几乎任何事情都可以在 Zsh 中完成的理想。

有谁知道如何让一个函数(或者内置函数/模块)以秒为单位执行浮点空闲延迟?

最佳答案

我会争辩说你做出了错误的假设。 zsh 是一个 shell,因此它的目的是成为一个 shell。作为 shell 的一个重要点是成为 POSIX 兼容的 shell。此外,由于 zsh 完全向后兼容 bash,而后者又完全向后兼容应该是 POISX shell 的 bourne shell。

这意味着自 sleep is required for a POSIX shell 以来 zsh 必须有权访问 sleep .

这就是我们对 POSIX 兼容性争论的看法。现在进行实际使用论证。大多数系统将使用 GNU coreutils sleep实现允许浮点参数的sleep。因此以下是 POSIX 可移植的:

if ! sleep 0.03; then
    sleep 1
fi

并且在大多数情况下应该作为细粒度延迟工作,同时在操作系统不使用 GNU coreutils 的极少数情况下仍然不会中断。据我所知,这些罕见的情况只是 AIX 和 HP-UX 系统。

关于linux - 我如何在 Zsh 中使用 float "delay"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39457087/

相关文章:

linux - 从 shell 脚本传递日期到查询

java - 我如何让我的 java 程序在 linux 中正确导入 javacv 库(编辑 - 现在得到 unsatisfiedLinkError)

python - 从 crontab 计划时与 Oracle 数据库 (cx_Oracle) 的连接不工作,但可以独立工作

linux - 输出shell变量时如何保留引号?

linux - 从 ZSH 中的别名更改全局变量?

command-line - 在 zsh 中回显所有别名

.net - Docker 构建镜像失败 - 没有这样的文件或目录

mysql - 如何在 linux 16.04 (LTS) 中下载 MySQL-Proxy

python - 计算文本文件中的不同单词 : different results in Shell and Python

macos - 为什么我无法在 macOS 上更改环境变量 $USERNAME?