运行 echo "\$ macroName " | 后返回码始终为 0 ftp -i 我的机器

运行 echo "\$ macroName " | 后返回码始终为 0 ftp -i 我的机器

调用 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

为什么返回零?

答案1

“ftp”命令似乎不返回除 0 之外的其他错误代码。

另一种解决方案是检查 FTP 返回代码。这里有一些关于如何执行此操作的示例:https://stackoverflow.com/a/4442763

相关内容