脚本出于未知原因创建文件

时间:2018-08-09 08:01:21

标签: bash file wc

我写了一个脚本,该脚本应该检查文件是否写在特定的文件夹中。由于未知原因,该脚本还在每个文件夹中创建了一个名称为“ 0”的文件。有谁知道,为什么会这样?

sFolders=$(ls -d /opt/sftp/pharmatest/*/*/uploaded/)
declare -a sUploaded=()
declare -a dirs=($sFolders)

for i in "${dirs[@]}"; do
        declare -i iDatei=$(ls $i | wc -l)
        if [ $iDatei > 0 ]
        then
                sUploaded=(${sUploaded[@]} $i)
        fi
done;

printf '%s\n' "${sUploaded[@]}" >> /opt/sftp/pharmatest/logfile.log

我的猜测是,“ declare -i iDatei = $(ls $ i | wc -l)”正在创建它们,因为即使我删除了目录中的所有文件(应由脚本检查),其输出日志文件中始终包含每个已检查的文件夹,因此if语句始终已满。

预先感谢

Ingo

1 个答案:

答案 0 :(得分:1)

if [ $iDatei > 0 ]不是test的有效用法,您应该输入if [ $iDatei -gt 0 ]

您在这里所做的是$iDatei > 0,这称为重定向,它将创建一个名为0的文件,其输出为$iDatei