- ベストアンサー
FTPコマンドの戻り値について
UnixのシェルでFTPを行っていますが、 接続不可の時にエラーの戻り値を取りたいと考えています。 ただ、 OPEN XXX user aaa acount bbb get ファイル名 取得先/ファイル名 bye というシェルを実行した場合、接続先XXXが有り得ない場合、 戻り値($?)が0以外かと思っていたのですが、表示させると0になっていました。 接続できません、というメッセージは表示されるのですが。。。 戻り値でエラーを判断する方法をご存知の方、よろしく お願いします。
- みんなの回答 (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バイトであれ ばエラーがなかったと判断しています。 エラーが発生した場合は、そのリダイレクトしたファイルを見れば内容がわかります。 今のところ問題なく動作しています。
その他の回答 (1)
- miya_777
- ベストアンサー率31% (44/140)
ping コマンドで一度接続して確認すればどうでしょう。 ping XXX -n 1 >& /dev/null と実行し、失敗すれば 0以外が返ります。
お礼
pikacchuさんのところにも書いた通り、現在テストが できない状況になってしまいました。 できるようになったら早速試してみます。 早速のご回答、どうもありがとうございました。
お礼
現在テストのできない状況になってしまったので、 確認ができないのですが、それでいけそうな気がします。 どうもありがとうございました!