자동화 잡기 현재 단말기 세 션

9238 단어 shellbash
그 전에 코드 를 아래 에 쓰 겠 습 니 다.code 에서 프로그램 에 문제 가 생기 면 code 전의 주 의 를 보 세 요. 저 는 실행 할 때 다음 과 같은 오류 가 발생 했 습 니 다. 
1: 내 가 빨간색 글씨 체 를 표시 한 것 은 가장 실수 하기 쉬 운 부분 이다. 왜냐하면 이것 은 현재 창의 크기 에 직접적인 영향 을 주 고 이것 만 고 쳐 야 하기 때문이다. 그러나 일어나 기 가 쉬 워 야 한다. 주로 이 code 를 분석 하고 분석 하 는 것 이다.
2: 그러나 프로그램 에 따라 들 어 오 면 이 오류 가 발생 합 니 다. 바로 "xwininfo 도움말 정보"입 니 다.원인 은 어디 에 있 습 니까?
3: 실수 원인 은 바로 너의 것 이다.
현재 터미널 세 션 제목 은 아래 의 빨간색 글꼴 을 현재 터미널 세 션 제목 으로 바 꾸 지만 함부로 바 꿀 수 없습니다.어떻게 고 쳐 야 합 리 적 입 니까?
4: "xwininfo - root - tree"명령 을 사용 하여 현재 터미널 세 션 창 을 가 져 옵 니 다. 다음 줄 을 보 세 요. 제 현재 세 션 id 입 니 다.   창 이름   (괄호 안에 있 는 것 은 상관 하지 마라)  Width
xHeight + 0 + 0 + x + y, (그 중의 x 와 y 는 프로그램의 것 입 니 다) 이렇게 하면 현재 세 션 창 을 찾 을 수 있 습 니 다. 그리고 code 의 빨간색 글꼴 을 현재 세 션 이름 으로 바 꾸 면 됩 니 다.
0x2600019
"Desktop : bash": ("konsole""Konsole")  843x591+0+0  +470+50
 

  
  
  
  
  1. #!/bin/bash  
  2.  
  3. # A simple shell script wrapper to record current terminal session of a linux  
  4.  
  5. # desktop. May work under other Unix like operating systems too.  
  6.  
  7. # Tested on RHEL 6.x, Debian 6.x, and Ubuntu Linux  
  8.  
  9. ----------------------------------------------------------------------------  
  10.  
  11. # Written by Vivek Gite <http://www.cyberciti.biz/>    
  12.  
  13. # (c) 2012 nixCraft under GNU GPL v2.0+  
  14.  
  15. ----------------------------------------------------------------------------  
  16. Last updated: 19/Aug/2012  
  17. ----------------------------------------------------------------------------  
  18.  
  19.  
  20. _xw=/usr/bin/xwininfo  
  21.  
  22. _recd=/usr/bin/recordmydesktop  
  23.  
  24. _awk=/usr/bin/awk  
  25.  
  26. _grep=/bin/grep  
  27.  
  28. _file="$1"  
  29.  
  30. _output=""  
  31.  
  32. # change this to match your PS1 settings  
  33.  
  34. _regex='"Desktop : bash":'  
  35.  
  36. die(){  
  37.  
  38. echo -e "$1"  
  39.  
  40. exit ${2:9999}  
  41.  
  42. }  
  43.  
  44. [ $# -eq 0 ] && die "Usage: $0 filename.ogv

    Record terminal desktop sessions under Linux or Unix."
     1  
  45.  
  46. add extension .ogv if not given  
  47.  
  48. _ext="${_file%%.ogv}"  
  49.  
  50. [[ "$_ext" == "$_file" ]] && _output="$_file.ogv" || _output="$_file"  
  51.  
  52.  
  53. [ ! -x "$_xw" ] && die "Error: $_xw not found or set correct \$_xw in $0" 2  
  54.  
  55. [ ! -x "$_recd" ] && die "Error: $_recd not found or set correct \$_recd in $0" 3  
  56.  
  57. [ ! -x "$_awk" ] && die "Error: $_awk not found or set correct \$_awk in $0" 4  
  58.  
  59. [ ! -x "$_grep" ] && die "Error: $_grep not found or set correct \$_grep in $0" 5  
  60.  
  61.  
  62. #get terminal window id  
  63.  
  64. _id=$($_xw -root -tree | $_grep "$_regex" | $_awk '{ print $1}')  
  65.  
  66.  
  67. #get terminal windows  x,y, width, and hight  
  68.  
  69. _x=$($_xw -id $_id | $_grep 'Absolute upper-left X' | $_awk '{ print $4}'
  70.  
  71. _y=$($_xw -id $_id | $_grep 'Absolute upper-left Y' | $_awk '{ print $4}'
  72.  
  73. _w=$($_xw -id $_id | $_grep 'Width:' | $_awk '{ print $2}')  
  74.  
  75. _h=$($_xw -id $_id | $_grep 'Height:' | $_awk '{ print $2}')  
  76.  
  77. x=$(( $_x + 8 ))  
  78.  
  79. y=$(( $_y + 57 ))  
  80.  
  81. width=$(( $_w -31 ))  
  82.  
  83. height=$(( $_h -62 ))  
  84.  
  85. $_recd --no-sound -x $x  -y $y --width $width --height $height -o $_output 

코드 는 어떻게 사용 합 니까?여기 내 원문 에 있 는 것 은 번역 하지 않 는 다.
Open a terminal.
Open Tab.
Run script as:
./script.sh foo.ogv
Switch to tab # 1 and run your command.
When done switch back to tab #2 and press CTRL + C to save recording to foo.ogv.
To run foo.ogv type:
gnome-open foo.ogv
or
mplayer foo.ogv
More aritcle about linux Link:http://note.sdo.com/u/_mr.jian/

좋은 웹페이지 즐겨찾기