Bash 脚本到 HTML 具有令人讨厌的特征

Bash 脚本到 HTML 具有令人讨厌的特征

您好,我正在运行 bash shell 脚本以发送到 html 页面,但 html 页面不断将此“[7l”字符与 bash 脚本的 shell 命令输出一起放入。

echo "<pre>"                                                 >> stats.html
echo "####### DISK Usage  ########" >> stats.html
/usr/bin/dstat --disk-util --disk --top-bio-adv 1 1   >> stats.html
echo "</pre>"                                                 >> stats.html

html 页面中有这个

####### DISK Usage  ########
[7lsda- -dsk/total- ----most-expensive-block-i/o-process----
util| read  writ|process              pid  read write cpu
0.04|  16k 8087B|systemd              1    8111B6247B0.0%

答案1

只是过滤一下东西:

/usr/bin/dstat ... | sed 's/\x1b\[7l//' >> stats.html

由于dstat是一个 python 脚本,您也可以通过编辑它来修复它:将sys.stdout.write后面的行### Disable line wrapping移到 后面(正确缩进)if sys.stdout.isatty()

--- dstat~
+++ dstat
@@ -2267,10 +2267,10 @@
     hostname = os.uname()[1]

     ### Disable line-wrapping (does not work ?)
-    sys.stdout.write('\033[7l')

     ### Write term-title
     if sys.stdout.isatty():
+        sys.stdout.write('\033[7l')
         shell = os.getenv('XTERM_SHELL')
         term = os.getenv('TERM')
         if shell == '/bin/bash' and term and re.compile('(screen*|xterm*)').match(term):

相关内容