大人になっても苦手な食べ物、ありますか?

UnixのシェルでFTPを行っていますが、
接続不可の時にエラーの戻り値を取りたいと考えています。

ただ、

OPEN XXX
user aaa acount bbb
get ファイル名 取得先/ファイル名
bye

というシェルを実行した場合、接続先XXXが有り得ない場合、
戻り値($?)が0以外かと思っていたのですが、表示させると0になっていました。
接続できません、というメッセージは表示されるのですが。。。
戻り値でエラーを判断する方法をご存知の方、よろしく
お願いします。

A 回答 (2件)

こんにちわ。


当方ではftpを自動実行する際、以下のようにしてます。

以下、シェルの内容
------------------------------------------------------------------
#!/bin/csh
ftp -n ホスト名 <<EOF >& 標準エラー出力リダイレクトファイル名
user aaa acount bbb
get ファイル名 取得先/ファイル名
bye
EOF

if (-z 標準エラー出力リダイレクトファイル名) then
exit(0)
else
exit(1)
endif
------------------------------------------------------------------
以上、シェルの内容

簡単に言うと、ftpコマンドにてエラーが発生するとそれらは標準エラー出力
に出力されるので、それをリダイレクトしてファイルサイズが0バイトであれ
ばエラーがなかったと判断しています。
エラーが発生した場合は、そのリダイレクトしたファイルを見れば内容がわかります。
今のところ問題なく動作しています。
    • good
    • 0
この回答へのお礼

現在テストのできない状況になってしまったので、
確認ができないのですが、それでいけそうな気がします。
どうもありがとうございました!

お礼日時:2001/08/17 11:11

ping コマンドで一度接続して確認すればどうでしょう。



ping XXX -n 1 >& /dev/null
と実行し、失敗すれば 0以外が返ります。
    • good
    • 0
この回答へのお礼

pikacchuさんのところにも書いた通り、現在テストが
できない状況になってしまいました。
できるようになったら早速試してみます。
早速のご回答、どうもありがとうございました。

お礼日時:2001/08/17 11:14

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報