在比较同一文件的文件大小时,我遇到嵌套if语句的问题。
如果文件大小未更改x秒,则执行文件扩展名从.tmp重命名为.pdf。
我正在使用bash作为我的shell。那段给我怨气的部分开始于
if [ "$fsize1" -eq "$fsize2" ]; then
似乎脚本完全绕过了上面的那一部分。它甚至没有进入嵌套的if语句(即调试回声语句“here”不会触发)
关于如何完成我正在寻找的任何想法?很可能这是某个地方的语法问题。提前感谢您的意见。
这是我所指的更大部分代码:
if [ -f $TARGETDIR/*.tmp ]; then
fsize=$(/usr/bin/ls -l | /usr/bin/grep *.tmp | /usr/bin/awk '{print $5}')
fullfilename=$(/usr/bin/ls *.tmp)
filenameonly=$(echo "$fullfilename" | sed 's/\.[^\.]*$//')
fileextension=$(echo "$fullfilename" | sed 's/^.*\.//')
echo $fullfilename
echo $filenameonly
echo $fileextension
echo $fsize
/usr/bin/sleep 5
fsize2=$(/usr/bin/ls -l | /usr/bin/grep *.tmp | /usr/bin/awk '{print $5}')
echo $fsize2
if [ "$fsize1" -eq "$fsize2" ]; then
/usr/bin/cat $TARGETDIR/$fullfilename > $TARGETDIR/$filenameonly.pdf
echo "here"
echo $fullfilename
echo $filenameonly
echo "file extension has been changed from tmp to pdf"
fi
fi