bash – OS X Lion中的I / O重定向
发布时间:2020-12-15 18:28:45 所属栏目:安全 来源:网络整理
导读:我有一个过去工作的脚本,它依赖于使用TCP将命令(实际上要处理的文件名)发送到侦听端口的进程.所以我可以把它发起并告诉它听,说端口9999. 作为一个快速黑客,我将使用如下命令设置流重定向到端口9999: exec 3 /dev/tcp/127.0.0.1/9999 然后我可以在我想要批处
我有一个过去工作的脚本,它依赖于使用TCP将命令(实际上要处理的文件名)发送到侦听端口的进程.所以我可以把它发起并告诉它听,说端口9999.
作为一个快速黑客,我将使用如下命令设置流重定向到端口9999: exec 3<> /dev/tcp/127.0.0.1/9999 然后我可以在我想要批处理所有文件的目录中运行一个find命令,比如 find . -name "*.xml" -exec printf "$PWD/{} $PWD/{}rn" >&3 ; 自从我升级到Lion以来,我没有尝试过这个,但它现在不起作用,给我一个“Bad File Descriptor”响应.有人有什么想法吗?
重定向到/ dev / tcp和/ dev / udp伪文件是Bash的可选编译时功能,许多操作系统供应商都选择将其关闭.看来苹果已经加入了俱乐部.你有几个选择:
>使用Bash的进程替换功能,例如:exec 3> >(nc localhost 9999) 如果您以交互方式执行此操作,则可能需要在不再需要重定向到TCP套接字时执行此操作:exec 3>的/ dev / null的 这应该导致生成的nc进程退出.>使用打开的/ dev / tcp和/ dev / udp伪文件支持编译自己的bash并使用它.>修改脚本以直接将输出管道输出到nc命令.如果您的脚本多次将输出重定向到文件句柄3并且侦听过程未正确处理多个连接尝试,则可能会出现问题.但是,如果您发现自己需要在不提供Bash shell的系统上使用脚本,那么它也更具可移植性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |