我想通过运行特定脚本来测试开发中的软件,比如script file.ext
. 但是有人告诉我,如果一个配置文件file.conf
包含一个特定的字符串(不是带有前导 # 的注释),它表明系统处于生产模式,我不允许运行该脚本。
所以在bash中,我该怎么做
如果file1.conf
包含一个字符串in production
并且该字符串不是格式, something ... # something in production something
则执行script file1.ext
。
或者,每次指定文件包含字符串in production
而不是在评论中时,我能否以某种方式获得警报?
我想我需要以某种方式使用命令inotifywait
。如果有一个脚本,它不仅可以检查文件file1.conf
,而且每次带有扩展名的文件.conf
显示我处于生产模式时都会发出警报。
实现这一点的一种方法是使用
grep
,例如,||
只有在它之前的部分不存在且退出代码为 0 时才执行后面的部分,并且grep
只有在找到其模式(第一个参数)时才执行退出代码 0。我选择了一个简单的图案
"^[^#]* in production "
。字符^
代表行首,[^#]
代表任何字符,除了#
量词*
表示可以有任意数量的字符。模式的其余部分只是您希望标记生产模式的文本。为了避免产生所有输出
grep
,您可以将其发送到/dev/null
:如果你想打印一条消息,如果你处于生产模式并且脚本没有运行,你可以这样做