unix - 如何将轮询文件保留在目录中,直到它到达 Unix

标签 unix

我想保留轮询文件,直到它到达该位置 1 小时。

我的目录:/home/stage
文件名(我正在寻找):abc.txt
我想保留轮询目录 /home/stage 1 小时,但在 1 小时内,如果 abc.txt文件到达然后它应该停止轮询并应该显示消息 file arrived否则 1 小时后应该显示 file has not arrived .

有没有办法在Unix中实现这一点?

最佳答案

另一个 bash方法,不依赖陷阱处理程序和信号,以防您的更大范围已经将它们用于其他事情:

#!/bin/bash
interval=60
((end_time=${SECONDS}+3600))

directory=${HOME}
file=abc.txt

while ((${SECONDS} < ${end_time}))
do
  if [[ -r ${directory}/${file} ]]
  then
    echo "File has arrived."
    exit 0
  fi
  sleep ${interval}
done

echo "File did not arrive."
exit 1

关于unix - 如何将轮询文件保留在目录中,直到它到达 Unix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17923773/

相关文章:

linux - 如何删除下划线之前和包括下划线的字符?

javascript - 获取 persianDate 的选定日期

c - 如何用C语言在Unix Socket上禁用Nagle算法?

linux - 如何让 bash 变量在 awk 管道上工作

c++ - ASM at&t 语法

linux - 如何使用 AWK 合并两个文件?

可以成功捕获 CTRL-Z,但不能捕获 SIGTSTP

linux - Mac 上 "size"命令中的数据段大小

unix - Red Hat 上的 CuRL SSL 握手问题

c++ - 用于多线程 Linux 应用程序的信号样式 IPC