0

在比较同一文件的文件大小时,我遇到了嵌套 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
4

0 回答 0