GNU netcat 退出代码总是 1?
GNU netcat exit code always 1?
我正在尝试在脚本中使用 netcat 的 GNU 变体,但它 总是 returns 退出代码 1 即使一切正常。这是我的案例:
- 运行
nc -l 127.0.0.1 -p 7000
- 运行
nc 127.0.0.1 7000
- 在客户端 nc 上按 ctrl+c
- 服务器 nc 总是 returns 1
这让我无法在 bash 脚本中检测到套接字绑定错误。准确地说是来自 Arch linux 的 GNU netcat。当使用地址时,Arch 的 BSD netcat 不会因套接字绑定错误而失败,所以它也好不了多少...
看完 GNU Netcat 源代码后,我有一个坏消息要告诉你...
int c, glob_ret = EXIT_FAILURE;
变量glob_ret
设置为EXIT_FAILURE
(1)并且只在端口扫描模式或隧道模式下改变。该变量未设置为侦听模式,因此程序将始终以代码 1 退出。
您可以在此处查看 netcat.c 源文件:https://pastebin.com/fh66BPgg(函数 main
)
我正在尝试在脚本中使用 netcat 的 GNU 变体,但它 总是 returns 退出代码 1 即使一切正常。这是我的案例:
- 运行
nc -l 127.0.0.1 -p 7000
- 运行
nc 127.0.0.1 7000
- 在客户端 nc 上按 ctrl+c
- 服务器 nc 总是 returns 1
这让我无法在 bash 脚本中检测到套接字绑定错误。准确地说是来自 Arch linux 的 GNU netcat。当使用地址时,Arch 的 BSD netcat 不会因套接字绑定错误而失败,所以它也好不了多少...
看完 GNU Netcat 源代码后,我有一个坏消息要告诉你...
int c, glob_ret = EXIT_FAILURE;
变量glob_ret
设置为EXIT_FAILURE
(1)并且只在端口扫描模式或隧道模式下改变。该变量未设置为侦听模式,因此程序将始终以代码 1 退出。
您可以在此处查看 netcat.c 源文件:https://pastebin.com/fh66BPgg(函数 main
)