Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 测试文件内容_Linux_Bash_Scripting_Mailx - Fatal编程技术网

Linux 测试文件内容

Linux 测试文件内容,linux,bash,scripting,mailx,Linux,Bash,Scripting,Mailx,我需要bash脚本的帮助 我有一个包含日志文件的文件夹(数量可能会有所不同) 我必须测试这些文件的内容,如果其中一个或多个文件有内容,我想通过邮件发送内容(我使用mailx),格式如下: “文件名”的内容是: ------内容--------- “文件名2”的内容是: ------内容--------- “filename3”中没有内容 使用bash做这件事有什么实际的方法吗 谢谢你的帮助 shopt -s nullglob for i in *; do if [[ -s "$i" ]];

我需要bash脚本的帮助 我有一个包含日志文件的文件夹(数量可能会有所不同) 我必须测试这些文件的内容,如果其中一个或多个文件有内容,我想通过邮件发送内容(我使用mailx),格式如下:

“文件名”的内容是: ------内容--------- “文件名2”的内容是: ------内容--------- “filename3”中没有内容

使用bash做这件事有什么实际的方法吗

谢谢你的帮助

shopt -s nullglob
for i in *; do
  if [[ -s "$i" ]]; then 
    echo "file $i exists and is not empty"
  fi
done


请参阅:
manbash

此问题要求两件不同的事情:从bash发送电子邮件(请参阅),以及测试文件是否为空(请参阅)。我不知道把另外两个问题合并成一个问题是否是一个有效的问题,但即使这样,问题的标题也应该更新以反映这一点。对不起,我应该说。通过邮件发送我知道怎么做。我的问题是测试文件是否有内容,然后格式化此内容以便发送。更准确地说,通过此文件夹中的文件循环检查其中哪些文件有内容
if[-s/etc/passwd]];然后echo“文件存在且不为空”;fi
请参见:
帮助测试
是,但在本例中,您正在测试一个已知存在的文件。在我的情况下,我不知道有多少文件在这个文件夹在任何给定的时间,因为数字不断变化。有的出现,有的消失。所以我缺少循环部分。