HTML에 대한 Bash 스크립트에는 성가신 특성이 있습니다.

HTML에 대한 Bash 스크립트에는 성가신 특성이 있습니다.

안녕하세요, 저는 html 페이지로 보내기 위해 bash 쉘 스크립트를 실행하고 있는데, html 페이지에서 bash 스크립트의 쉘 명령 출력과 함께 이 "[7l" 문자를 계속 넣습니다.

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

Python 스크립트 이므로 dstat편집하여 수정할 수도 있습니다. 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):

관련 정보