0
我应该写一个PyQt的应用程序,它可经由UART串行设备进行通信。我将它连接到基于OpenWRT的路由器,当我试图在其上运行'ls'时,输出(请参阅附图)在文件夹名称周围有一些奇怪的字母。我知道这些是某种颜色代码。如何从输出中删除这些或相应地显示颜色。 任何帮助都会有所帮助。
我应该写一个PyQt的应用程序,它可经由UART串行设备进行通信。我将它连接到基于OpenWRT的路由器,当我试图在其上运行'ls'时,输出(请参阅附图)在文件夹名称周围有一些奇怪的字母。我知道这些是某种颜色代码。如何从输出中删除这些或相应地显示颜色。 任何帮助都会有所帮助。
为LS参见手册页(1),并且命令
$ command -v ls
在我的Linux系统的输出,即报告
$ command -v ls
alias ls='ls --color=auto'
这是一个生活的事实Unix交互式shell不能可靠地确定所连接终端的特性,并且遗憾的是GNU着色对终端无关紧要。当与不需要颜色的设备连接时,最好的方案就是在任何地方出现问题时关闭它。
要测试,一个快速的诀窍是键入“ls”是这样的:
$ \ls
的介绍反斜杠击败shell的别名机制,并还原为使用裸/usr/bin/ls
,或任何你PATH
用品。
嘿,谢谢你的回复詹姆斯,我明白你的答案,但我的问题是,这个工具将与许多设备一起使用,其中许多设备我很难预先访问。有像'屏幕'这样的工具能够以某种方式解析信息并相应地显示颜色,我需要能够做到这一点的东西或者一起移除代码。 –
您不需要访问设备。连接后,只需根据您的需求建立您的环境。使用你的shell-fu:** unalias **和** unset **你支持/使用的每一个命令。我真的认为这是你唯一的选择。我怀疑有一个程序会过滤掉ANSI控制序列。这个任务很复杂且不明确:程序必须过滤任何在termcap中定义的设备的控制序列(或其他)。任何声称要这样做的东西都会引入尽可能多的问题。 –