在比较同一文件的文件大小时,我遇到了嵌套 if 语句的问题。
如果文件大小在 x 秒内没有改变,则将文件扩展名从 .tmp 重命名为 .pdf。
我使用 bash 作为我的外壳。让我不满的部分开始于
if [ "$fsize1" -eq "$fsize2" ]; then
该脚本似乎完全绕过了上面的那部分。它甚至没有进入嵌套的 if 语句(即“此处”的调试回显语句不会触发)
关于如何完成我正在寻找的任何想法?很可能是某个地方的语法问题。提前感谢您的投入。
这是我指的更大的部分代码:
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