gpt4 book ai didi

bash - 用于检查具有不同名称的多个文件的 shell 脚本

转载 作者:行者123 更新时间:2023-11-29 09:43:32 25 4
gpt4 key购买 nike

我正在创建一个脚本来检查目录中的 3 个文件,计算其中的行数,如果行存在则发送邮件。如果这些文件中的任何一个有计数,我只需要发送一封邮件,我最终发送3 封邮件。

例如。我有这些文件

process_date.txt
thread_date.txt
child_date.txt

我正在做类似的事情

$1= process_date.txt
$2= thread_date.txt
$3= child_date.txt

if [ -f $1 ]
then
count1=`wc-l < $1`
if $count1 -ne 0 then mailx abc.com
fi
fi

if [ -f $2 ]
then
count2=`wc-l < $2`
if $count2 -ne 0 then mailx abc.com
fi
fi

if [ -f $3 ]
then
count3=`wc-l < $3`
if $count3 -ne 0 then mailx abc.com
fi
fi

最佳答案

正如您陈述的问题,您似乎只需要检查是否至少有一个文件是非空的:您不需要计算行数。在 Bash 中,您可以使用 [[ -s file ]] 测试来准确测试 file 是否存在且非空。所以你可以这样做:

#!/bin/bash

if [[ -s $1 ]] || [[ -s $2 ]] || [[ -s $3 ]]; then
mailx abc.com
fi

更一般地说,如果作为参数给出的至少一个文件存在且非空,则可以发送邮件:

#!/bin/bash

for file; do
if [[ -s $file ]]; then
mailx abc.com
break
fi
done

你可以这样调用它

scriptname process_date.txt thread_date.txt child_date.txt

关于bash - 用于检查具有不同名称的多个文件的 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26944534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com