gpt4 book ai didi

linux - 当 ls 找不到结果时 bash ls 输出到文件

转载 作者:太空宇宙 更新时间:2023-11-04 12:42:01 28 4
gpt4 key购买 nike

我对使用 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
$

关于linux - 当 ls 找不到结果时 bash ls 输出到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39890129/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com