我试图在脚本中使用netcat的GNU变体但是总是返回退出代码1,即使一切都很好。以下是我的案例:
nc -l 127.0.0.1 -p 7000
nc 127.0.0.1 7000
这使我无法在bash脚本中检测到套接字绑定错误。准确地说是来自Arch linux的GNU netcat。当地址被使用时,用于Arch的BSD netcat在套接字绑定错误上没有失败,所以它也不是更好......
答案 0 :(得分:3)
在查看GNU Netcat源代码后,我有一个坏消息......
int c, glob_ret = EXIT_FAILURE;
变量glob_ret
设置为EXIT_FAILURE
(1),仅在端口扫描模式或隧道模式下更改。该变量未设置为侦听模式,因此程序将始终以1代码退出。
您可以在此处查看netcat.c源文件:https://pastebin.com/fh66BPgg(函数main
)