bash - 每当出现新目录时如何在 BASH 中实现等待功能
问题描述
我有以下文本文件(namelist.txt)
&share
wrf_core = 'ARW',
max_dom = 3,
start_date ='YYYY-MM-DD_HH:00:00','YYYY-MM-DD_HH:00:00','YYYY-MM-DD_HH:00:00',
end_date ='YYYY-MM-DD_HH:00:00','YYYY-MM-DD_HH:00:00','YYYY-MM-DD_HH:00:00',
interval_seconds = 21600,
io_form_geogrid = 2,
debug_level=0,
/
INPUT 文件夹包含以下子目录:
2021021000
2021021006
2021021012
2021021018
2021021100
每次在 INPUT 文件夹中出现新的子目录时,我都想更新 YYYY-MM-DD_HH。
到目前为止,我有以下脚本。
#! /bin/bash
cd INPUT
dirs=([0-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-2][0-9]/)
last="${dirs[-1]}"
sed -i "s/YYYY-MM-DD_HH/${last:0:4}-${last:4:2}-${last:6:2}_${last:8:2}/g" namelist.txt
在其他一些过程之后,我输入这个回到原来的 YYYY-MM-DD_HH:
sed -i "s/${last:0:4}-${last:4:2}-${last:6:2}_${last:8:2}/YYYY-MM-DD_HH/g" namelist.txt
(a) 在 bash 中有没有更有效的方法来做到这一点?
(b) bash 中是否有“等待”功能,如果没有可用的新目录,进程将不会继续?
我该如何实现这一点,以便脚本仅在出现此2021021106目录后再次运行。
我会很感激这方面的任何帮助。
解决方案
推荐阅读
- asp.net - 如何控制 NSwag 文档中包含的模型
- silverstripe - CMS 路由(设置)的 SilverStripe 功能测试始终为 POST 请求返回 404
- xamarin.android - listview 项目空间 xamarin android
- php - 如何在一次 MySQL 数据库更新中做多个数学方程?
- multithreading - 尝试使用 vTaskList() 列出所有任务时出现硬故障
- visual-studio - 如何正确导入 Xamarin 项目?
- java - 使用 JMS ObjectMessage 时发生 ClassNotFound 异常
- json - 使用 Python 读取 JSON 文件时出错
- google-sheets - 在 Google 表格中填写缺失的日期
- build - CentOS 7.5 上的 REDHAWK 2.2.5 - 尝试将 rh.dsp 共享库添加到组件时出现构建错误