echo "\$ MacroName" | ftp -i my machineを実行した後、戻りコードは常に0です。

echo

FTPマクロを呼び出すときにゼロ以外の戻りコードを取得できないようです。 ftpマクロの実行中にディレクトリが存在しないか、ファイルが存在しないなど、どのエラーが発生したかは問題ではありません。

理由を知りたいです。

私はSolarisでbashを使用しています。

私の.netrcファイルは次のとおりです。

machine myftp1
        login xxxxxxxx
        password xxxxxxxxx

macdef getASCIIfiles
       cd $1
       hash
       prompt off
       get $2

次のコマンドを実行します。

echo "\$ getASCIIfiles Scratch/mydir NON_EXISTANT_FILE.TXT" | ftp -i myftp1    
echo $?

次の出力を生成します

Hash mark printing on (8192 bytes/hash mark).    
Interactive mode on.    
NON_EXISTANT_FILE.TXT: The system cannot find the file specified.    
0

0が返されるのはなぜですか?

ベストアンサー1

"ftp"コマンドは0以外のエラーコードを返さないようです。

別の回避策は、FTPリターンコードを確認することです。これを行う方法のいくつかの例は次のとおりです。https://stackoverflow.com/a/4442763

おすすめ記事