免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1702 | 回复: 4
打印 上一主题 下一主题

请教:有没有可以处理script命令输出字符串的API? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-12-09 11:46 |只看该作者 |倒序浏览
script命令输出的文本文件typescript中记录了所有的输出,如:
^[]0;root@YXZ-CentOS:~^G[root@YXZ-CentOS ~]# cat /etc/pass^H^H^H^H^M[root@YXZ-CentOS ~]# cat /etc/p^H^[[1Pass^H^H^H^[[1Pss^H^Hpss^H^Hass^H^H^M[root@YXZ-CentOS ~]# cat /etc/pas^M[root@YXZ-CentOS ~]# cat /etc/passwd

系统提供的cat、more命令可以正确处理显示为:
[root@YXZ-CentOS ~]# cat /etc/passwd

网上找了半天、论坛的帖子也看了大部分,都没有找到。也许是我的查找方法还不对头,所以就只好到这里来求教了。

论坛徽章:
0
2 [报告]
发表于 2006-12-09 13:04 |只看该作者
没看懂你的意思

如果你是想在程序里得到script的输出的话,可以调用popen函数

论坛徽章:
0
3 [报告]
发表于 2006-12-09 13:55 |只看该作者

回复 2楼 kartwall 的帖子

不好意思。我的意思是,程序里得到字符串
^[]0;root@YXZ-CentOS:~^G[root@YXZ-CentOS ~]# cat /etc/pass^H^H^H^H^M[root@YXZ-CentOS ~]# cat /etc/p^H^[[1Pass^H^H^H^[[1Pss^H^Hpss^H^Hass^H^H^M[root@YXZ-CentOS ~]# cat /etc/pas^M[root@YXZ-CentOS ~]# cat /etc/passwd
后,把用一个API把该字符串转换成
[root@YXZ-CentOS ~]# cat /etc/passwd

不管怎么样,感谢你的答复。有什么建议吗?

[ 本帖最后由 littlepond 于 2006-12-9 13:56 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2006-12-09 18:31 |只看该作者
这好像不是一个API能解决问题的事情,可以试试正则表达式。

但是看你的描述,这字符串里面的字符也太乱了一点,起码得有点规律吧

论坛徽章:
0
5 [报告]
发表于 2006-12-09 19:32 |只看该作者

回复 4楼 kartwall 的帖子

script命令就是记录了命令行中的所有输出,包括DEL、Backspace、Left、Right、Home、End等,所以记录下来的字符串有很多控制字符序列。

我看cat、more命令的源代码中也就是简单地把字符串输出到STDOUT_FILENO,所以我想这个转换是由下层的模块(比如termianl driver)完成的。但是我想应该有这么一个API提供给上层使用吧?即使没有,也应该有人遇到同样的情况,可以提供点处理建议。

感谢你的回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP