标题: [特效代码] ehco y|command 管道问题求解 [打印本页]
作者: eddy 时间: 2015-4-29 11:07 标题: ehco y|command 管道问题求解
本帖最后由 eddy 于 2015-4-29 11:24 编辑
使用如下批处理代码:
echo y| command 其中command泛指一个批处理语句,ehco y通过管道将y传给command作为commnd的输入使用
在实际的执行过程中,发现command有时候能够收到y,正确执行,有时候不能收到y,一只等待y输过来
由于command本身需要执行一段时间后,才用到y,个人怀疑是不是y只在管道中呆一段时间t,如果command在时间t之前用到y,则y可正确输给command,如果command在时间t之后才用到y,但是此时y已经不再管道中了,则command只能一致等待y输过来
请问各位大神:以上问题原因是什么?有何解决措施?谢谢
补充:
具体的例子是
echo y|plink.exe -pw root [email]root@192.168.51.11[/email]
其中,"plink.exe -pw root [email]root@192.168.51.11[/email]"是登入一台linux服务器,登入后系统会提示:"Are you sure to login the server?[Y/N]:",这里需要输入y,实际的操作过程中,有时候能够正确输入,有时不能
作者: gawk 时间: 2015-4-29 12:51
有的服务器正常,有的服务器不正常?
还是同一台服务器有时正常有时不正常?
不使用 echo y,直接给plink加个 -batch 参数可以吗?
作者: eddy 时间: 2015-4-29 14:21
回复 2# gawk
有的服务器正常,有的服务器不正常?
还是同一台服务器有时正常有时不正常?
----同一台服务器
不使用 echo y,直接给plink加个 -batch 参数可以吗?
-----不行。batch是禁用交互,我这里还想通过管道的方式给plink传送除了y意外的命令,给服务器执行。(我这边的服务器由于系统配置问题,plink直接执行命令会报server refused to start a shell/command的错误,所以我想用管道的方式)
作者: gawk 时间: 2015-4-29 14:44
回复 3# eddy - plink -ssh -v -pw Pass4Root root@192.168.222.11 "/var/tmp/test.sh" > remote.log
复制代码
- plink -ssh -v -pw Pass4Root root@192.168.222.11 -m local.sh > local.log
复制代码
我这里的服务器上都是直接执行远程脚本或者本地脚本
不知道你那里做了什么设置导致 refused to start a shell/command
作者: eddy 时间: 2015-4-29 15:38
回复 4# gawk
恩,谢谢
1、一般的linux是可以直接执行命令
2、我们这个linux经过裁剪且加入了一些安全设置,导致plink无法直接执行命令,我的关注点不在这里。
3、我关注的是,如问题所述,为何echo y|command这个管道有时可以有时不可以,管道前的输出到管道后的输入的机制是怎样的。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |