0

同じファイルのファイル サイズを比較するときに、ネストされた if ステートメントに問題があります。

ファイル サイズがx 秒間変わらない場合は、ファイル拡張子を .tmp から .pdf に変更します。

シェルとして bash を使用しています。私に不満を与えているセクションは

if [ "$fsize1" -eq "$fsize2" ]; then

スクリプトは上記のセクションを完全にバイパスしているようです。ネストされた if ステートメントの内部にも入りません (つまり、デバッグ用の echo ステートメント "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
4

0 に答える 0