同じファイルのファイル サイズを比較するときに、ネストされた 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