Bash脚本挂起

时间:2011-08-07 06:55:50

标签: bash unix scripting

我有以下代码。基本上,此代码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.

1 个答案:

答案 0 :(得分:3)

是的,试一试。

此外,如果您不了解它,set -x命令在这种情况下很有用。我的方法是将set -x添加到脚本的顶部,然后使用重定向到文件的输出运行它。捕获标准输出和标准错误

./ script.sh> output.txt 2>& 1

如果您愿意,可以在另一个窗口中使用tail -f output.txt来监视进度。

设置-x echos命令运行,重定向将命令和输出按时间顺序排列。