我有以下代码。基本上,此代码ls -tr $FROM_DIRECTORY
会将输出重定向到/tmp/msc.load.tmp
。在此之后,将执行for
循环并将前3000个文件移动到另一个目录。代码工作正常,但有时它会挂起。我不知道为什么会挂起来。任何人都知道脚本的问题是什么?
ls -tr $FROM_DIRECTORY > /tmp/msc.load.tmp
echo "$sysdate -- Listing Diretory " >>$LOGFILE
# From the file list, get the 3000 from the top to move. Skip the remaining files in the list
# in this iteration.
# Version 1.1 - List the files from the temporary file.
for file in $(cat /tmp/msc.load.tmp | grep 'MSCERC.*' | head -3000 )
do
mv $FROM_DIRECTORY/$file $DESTINATION_DIRECTORY
done
echo "$sysdate -- End of Script " >>$LOGFILE
exit 0
# End of script.
答案 0 :(得分:3)
是的,试一试。
此外,如果您不了解它,set -x命令在这种情况下很有用。我的方法是将set -x添加到脚本的顶部,然后使用重定向到文件的输出运行它。捕获标准输出和标准错误
./ script.sh> output.txt 2>& 1
如果您愿意,可以在另一个窗口中使用tail -f output.txt来监视进度。
设置-x echos命令运行,重定向将命令和输出按时间顺序排列。