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