簡體   English   中英

當ls未找到結果時,將bash ls輸出到文件

[英]bash ls output to file when ls finds no results

我對使用bash編寫腳本相對較新,並做了以下腳本:

# Set variables
logfile=/tmp/peter/logfile.log
indir=/mls/indir/IG/
tempdir=/mls/indir/IG/IGTEMP/
MLSready=/mls/indir/IG/MLSready

#Log current date/time
date >>$logfile

#Check whether processing files are present and one MLSready file exists. If not, exit the script.
if ls ${tempdir}R* 1> /dev/null 2>&1; then 
   mv $MLSready $tempdir
   if [ $? -eq 0 ] ; then
      echo MLSready move succeeded, copy processing files from $tempdir to $indir >>$logfile
      ls -l ${tempdir}MLSready >>$logfile
      find $tempdir -type f -name 'RPUO*' -mmin +1 -exec mv {} $indir \; 
      find $tempdir -type f -name 'RFRO*' -mmin +3 -exec mv {} $indir \; 
   else
      echo MLSready does not exist, exit script >>$logfile
      exit 1
   fi 
else
   echo no processing files in $tempdir, exit script >>$logfile
   exit 1
fi

echo set new MLSready file >>$logfile
# date >$MLSready
ls -l $MLSready 1>&2 >>$logfile

exit

在腳本的結尾,我沒有創建新的MLSready文件。 當我執行腳本時,我希望在日志文件中看到最新的“ ls -l”命令的結果,但是(因為我沒有創建新的MLSready文件?),輸出將重定向到我的提示符而不是我的提示符。日志文件:

DC3_igsy3ft3.sonic:/tmp/peter> ./move_bmp_files.sh
ls: 0653-341 The file /mls/indir/IG/MLSready does not exist.

如何安排最新的“ ls -l”命令的結果始終重定向到我的日志文件?

我也嘗試過:

ls -l $MLSready 2>&1 >>$logfile
ls -l $MLSready >>$logfile

在我的日志文件下面:

do okt  6 09:22:39 2016
MLSready move succeeded, copy processing files from /mls/indir/IG/IGTEMP/ to /mls/indir/IG/
-rw-rw-rw-    1 oracle   505               0 okt 06 09:22 /mls/indir/IG/IGTEMP/MLSready
set new MLSready file

提前致謝!!

它的順序是:

$ ls -l $MLSready >>$logfile 2>&1
$

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM