dポイントプレゼントキャンペーン実施中!

Linuxを勉強中のものです。
IF文の複合文で困っております。
(OSはCentOS5.4です)


#!/bin/sh

DATE=`date +%Y%m%d --date '1 day ago'`

address1=test@test.co.jp
address2=admin@test.co.jp
subject1="ccc.logは削除されませんでした"
subject2="ccc.logは削除されました"
subject1=`echo $subject | nkf -j`
subject2=`echo $subject | nkf -j`
honbun1="bbb.logが見付からなかったため、ccc.logは削除されませんでした。"
honbun2="aaa.logが見付からなかったため、ccc.logは削除されませんでした。"
honbun3="ccc.logは削除されました。"


if [ -e aaa.gz ]; then
if [ -e bbb.gz ]; then
{ rm -f ccc.log;
mail -s "$subject2" $address1 -- -f $address2 << honbun;
`echo $honbun3 | nkf -j`;
honbun; }
else
{ mail -s "$subject1" $address1 -- -f $address2 << honbun;
`echo $honbun1 | nkf -j`;
honbun; }
fi
else
{ mail -s "$subject1" $address1 -- -f $address2 << honbun;
`echo $honbun2 | nkf -j`;
honbun; }
fi


上のシェルスクリプトを実行すると、エラー表示され動作しません。
エラー >> line 32: syntax error: unexpected end of file


どんな些細な情報でも結構ですので、ご教授下さい。
宜しくお願い致します。

A 回答 (2件)

テストしてみましたが、エラーでなくなりましたよ。


honbun;
の最後のセミコロンもはずします。

それと、修正するのは三箇所ともです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
またこちらの返答が遅れてしまい、申し訳ございませんでした。

当初、仰られているとおりhonbun;の最後のセミコロンを3行とも
外しても状況は改善されませんでした。
if文も見やすくするためTabキーを使って段落を付けていたのですが、
それを無くしたところ状況が改善されました。
(勿論セミコロンは外しています)

ありがとうございました。

お礼日時:2010/07/13 17:03

<< honbun;



はhoubunが見つかるまでなので

ターミネートの行は
honbun; }
じゃなくて

honbun
}
と記述するはずです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

{ rm -f ccc.log;
mail -s "$subject2" $address1 -- -f $address2 << honbun;
`echo $honbun3 | nkf -j`;
honbun; }

↓以下のように変更しましたが改善されませんでした

{ rm -f ccc.log;
mail -s "$subject2" $address1 -- -f $address2 << honbun;
`echo $honbun3 | nkf -j`;
honbun
}


また何か思い当たるところがございましたら、ご教授お願い致します。

お礼日時:2010/07/09 14:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!