我有運行在外殼命令並分析輸出一個perl腳本,如下所示:Shell命令執行包含垃圾字符
# Using ls -ltr for illustration. Actual command is different.
my $cmd = "ls -ltr 2>&1 | ";
open (CMD, $cmd) || die "Cant run $cmd";
while (my $line = <CMD>) {
chomp $line;
...
...
}
上面$line
包含即使使用chomp
後垃圾字符。我已經嘗試將輸出重定向到文件,並且還從文件讀取,但是甚至文件中都有垃圾/垃圾字符。
上述命令執行的示例輸出:
^[[H^[[Jtotal 12
drwx------ 2 root root 4096 Dec 19 15:30 tad4d
drwx------ 2 root root 4096 Jan 2 15:37 oup
-rw-r--r-- 1 root root 137 Jan 9 06:25 alth.txt
在上面的輸出,total 12
之前,也有一些亂碼本。
- 什麼可能是垃圾字符進入shell命令的輸出的原因?
- 如何避免垃圾/垃圾字符?
感謝
需要一個「垃圾」的例子來回答。 – Sobrique
添加了一個示例輸出! – Fazlin
'^ ['是一個轉義碼。你有配置提示,特別是有顏色的配置嗎? ('echo $ PS1'應該告訴你) – Sobrique