bash shell脚本在比较文件大小后无法触发操作

时间:2013-07-15 20:54:48

标签: shell compare filesize

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

0 个答案:

没有答案