• ベストアンサー

FTPコマンドの戻り値について

UnixのシェルでFTPを行っていますが、 接続不可の時にエラーの戻り値を取りたいと考えています。 ただ、 OPEN XXX user aaa acount bbb get ファイル名 取得先/ファイル名 bye というシェルを実行した場合、接続先XXXが有り得ない場合、 戻り値($?)が0以外かと思っていたのですが、表示させると0になっていました。 接続できません、というメッセージは表示されるのですが。。。 戻り値でエラーを判断する方法をご存知の方、よろしく お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • pikacchu
  • ベストアンサー率44% (11/25)
回答No.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バイトであれ ばエラーがなかったと判断しています。 エラーが発生した場合は、そのリダイレクトしたファイルを見れば内容がわかります。 今のところ問題なく動作しています。

m_miyachan
質問者

お礼

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

その他の回答 (1)

  • miya_777
  • ベストアンサー率31% (44/140)
回答No.1

ping コマンドで一度接続して確認すればどうでしょう。 ping XXX -n 1 >& /dev/null と実行し、失敗すれば 0以外が返ります。

m_miyachan
質問者

お礼

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

関連するQ&A