Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.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 计数使用shell脚本移动失败的文件数_Linux_Bash_Shell_Unix_Scripting - Fatal编程技术网

Linux 计数使用shell脚本移动失败的文件数

Linux 计数使用shell脚本移动失败的文件数,linux,bash,shell,unix,scripting,Linux,Bash,Shell,Unix,Scripting,我使用以下脚本计算移动到目标文件夹的文件数 while read ln; do mv -v $ln $dest_path1 2>>log;((count++));done 现在的问题是,我不知道有多少文件成功移动,有多少文件失败。有人能告诉我怎么做吗?谢谢大家! 将脚本替换为以下内容: count=0 while read ln; do mv -v $ln $dest_path1 2>>log && ((count++)) done 现在,因为

我使用以下脚本计算移动到目标文件夹的文件数

while read ln; do mv -v $ln $dest_path1 2>>log;((count++));done

现在的问题是,我不知道有多少文件成功移动,有多少文件失败。有人能告诉我怎么做吗?谢谢大家!

将脚本替换为以下内容:

count=0
while read ln; do
    mv -v $ln $dest_path1 2>>log && ((count++))
done

现在,因为只有当
mv
命令成功时,才会发生操作员计数器增量。

如果您跟踪返回代码,则会更容易

success=0
fail=0
while read ln; do
  mv -v $ln $dest_path1 2>>log && ((success++)) || ((fail++))
done
echo "Number of files moved: ${success}"
echo "Number of files not moved: ${fail}"

谢谢你的回答!然而,我不知道为什么失败的次数总是返回1?