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
Bash for循环返回空停止程序?_Bash_For Loop_Int - Fatal编程技术网

Bash for循环返回空停止程序?

Bash for循环返回空停止程序?,bash,for-loop,int,Bash,For Loop,Int,我正在制作一个脚本,用于搜索文件并对它们进行计数。稍后,我将使用此计数值创建备份文件。这就是它看起来的样子: #!/bin/sh #LOCAL VAR PERFECTLY DEFINED if $estdifferent ; then x=0; for fic in `find $OTHERDIR/liste/ -type f -name "${filename}_bak*"` ; do { filename_t

我正在制作一个脚本,用于搜索文件并对它们进行计数。稍后,我将使用此计数值创建备份文件。这就是它看起来的样子:

#!/bin/sh
#LOCAL VAR PERFECTLY DEFINED



 if $estdifferent ; then 
        x=0;
        for fic in `find $OTHERDIR/liste/ -type f -name "${filename}_bak*"` ; do
        {

            filename_tab[x]=$fic
            ((x++))
        }
        echo "tableau rempli, nombre de fichier bak : "$x
此代码块在至少找到一个文件时有效,但在有0个文件时无效。 脚本未到达最后一个回显。调试模式在以下位置停止脚本:

echo differents
differents
true
x=0
find /tech/gtr/scripts/osm/scan-configs/liste/ -type f -name 'IDF-952584-S...
为什么?

尝试更换:

for fic in `find $OTHERDIR/liste/ -type f -name $filename"_bak"*`;do
{
    echo $fic
    filename_tab[x]=$fic
    ((x++))
}


请?

Debug说:++find/tech/gtr/scripts/osm/scan configs/liste/-type f-name find:“-name”缺少参数,但上面几行也说我的$filename变量不存在empty@user2564494这应该说明你的问题。并不是说find没有找到任何东西-模式中的*字符被shell看到并展开。尝试改用-name${filename}u bak*,因为引用可以防止全局扩展;但是,不管是否使用shopt-s nullglob,脚本都会在这个查找处停止。@user2564494那么,您可能想修复问题中发布的代码,因为它看起来肯定不是这样的……这是什么风格和版本的/bin/sh?这不是有效的bash语法。for循环看起来像for;做完成,而不是使用redhat的{…}block.bash4.1.21。找到文件时,此“for”语法有效:
for fic in `find $OTHERDIR/liste/ -type f -name $filename"_bak"*` ; do
    echo $fic
    filename_tab[x]=$fic
    ((x++))
done