0

「sftp」に関して小さな問題があります。

ファイルをリモートのsftpサーバーに転送するだけのスクリプトがあります。しかし、このスクリプトを実行すると、sftp で失敗し、スクリプトが失敗します。そのため、スクリプトで使用したコマンドと同じコマンドを使用して、ファイルを手動で転送する必要があり、正常に動作します。

したがって、私の問題は、sftpコマンドを手動で実行するとスムーズに実行されますが、スクリプトを介して同じコマンドを実行すると問題が発生することです。

これは私が使用しているコードです

sftp -v -b sftp_input.txt UserId@aa.bb.cc.dd 
if (($? > 0 ));
then
   echo "sftp  error. Exiting.."
   exit
fi

ここで、sftp_input.txt には、ファイルをリモート サーバーに配置するためのコマンドが含まれています。

ご意見をお聞かせください.....

4

1 に答える 1

0

形式が正しくないため、スクリプトは機能しません。ステートメントを区切るのifを忘れ、締めくくりも忘れましたfi。スクリプトの正しい形式は次のとおりです。

sftp -v -b sftp_input.txt UserId@aa.bb.cc.ddd
if (($? > 0 )); then
    echo "sftp error. Exiting.."
    exit
fi

すべてを 1 行にまとめたい場合は、次のようにします。

sftp -v -b sftp_input.txt UserId@aa.bb.cc.ddd; if (($? > 0 )); then echo "sftp error. Exiting.."; exit; fi

しかし、ご覧のとおり、それは悪い考えです。読みやすく、よくインデントされたコードを書くことをお勧めします。

于 2013-10-15T19:14:45.867 に答える