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