<div id="palb5"><fieldset id="palb5"><strike id="palb5"></strike></fieldset></div>
      <center id="palb5"></center>
        <ruby id="palb5"><menuitem id="palb5"></menuitem></ruby>

          <em id="palb5"><ol id="palb5"></ol></em>
          太阳之歌女主角,棋王梁家辉,三毛学生意,绅士品格国语版全集,西安天空出现奇异云层,幽灵公主在线观看高清完整,蜜桃成熟时2未删减版,燃烧电视剧全集30集

          Shell腳本調試技術

          時間:2024-09-30 15:20:19 Linux認證

          關于Shell腳本調試技術

            Shell腳本與Windows/Dos下的批處理相似,也就是用各類命令預先放入到一個文件中,方便一次性執行的一個程序文件,主要是方便管理員進行設置或者管理用的。下面小編準備了關于Shell腳本調試技術,提供給大家參考!

            一. 前言

            shell 編程在unix/linux世界中使用得非常廣泛,熟練掌握shell編程也是成為一名優秀的unix/linux開發者和系統管理員的必經之路。腳本調 試的主要工作就是發現引發腳本錯誤的原因以及在腳本源代碼中定位發生錯誤的行,常用的手段包括分析輸出的錯誤信息,通過在腳本中加入調試語句,輸出調試信 息來輔助診斷錯誤,利用調試工具等。但與其它高級語言相比,shell解釋器缺乏相應的調試機制和調試工具的支持,其輸出的錯誤信息又往往很不明確,初學 者在調試腳本時,除了知道用echo語句輸出一些信息外,別無它法,而僅僅依賴于大量的加入echo語句來診斷錯誤,確實令人不勝其繁,故常見初學者抱怨 shell腳本太難調試了。本文將系統地介紹一些重要的shell腳本調試技術,希望能對shell的初學者有所裨益。

            本文的目標讀者是unix/linux環境下的開發人員,測試人員和系統管理員,要求讀者具有基本的shell編程知識。本文所使用范例在 Bash3.1+Redhat Enterprise Server 4.0下測試通過,但所述調試技巧應也同樣適用于其它shell。

            二. 在shell腳本中輸出調試信息

            通 過在程序中加入調試語句把一些關鍵地方或出錯的地方的相關信息顯示出來是最常見的調試手段。Shell程序員通常使用echo(ksh程序員常使用 print)語句輸出信息,但僅僅依賴echo語句的輸出跟蹤信息很麻煩,調試階段在腳本中加入的大量的echo語句在產品交付時還得再費力一一刪除。針 對這個問題,本節主要介紹一些如何方便有效的輸出調試信息的方法。

            1. 使用trap命令

            trap命令用于捕獲指定的信號并執行預定義的命令。

            其基本的語法是:

            trap 'command' signal

            其中signal是要捕獲的信號,command是捕獲到指定的信號之后,所要執行的命令。可以用kill –l命令看到系統中全部可用的信號名,捕獲信號后所執行的命令可以是任何一條或多條合法的shell語句,也可以是一個函數名。

            shell腳本在執行時,會產生三個所謂的“偽信號”,(之所以稱之為“偽信號”是因為這三個信號是由shell產生的,而其它的信號是由操作系統產生的),通過使用trap命令捕獲這三個“偽信號”并輸出相關信息對調試非常有幫助。

            表 1. shell偽信號

          信號名 何時產生  
            EXIT 從一個函數中退出或整個腳本執行完畢
            ERR 當一條命令返回非零狀態時(代表命令執行不成功)
            DEBUG 腳本中每一條命令執行之前
                   

            通過捕獲EXIT信號,我們可以在shell腳本中止執行或從函數中退出時,輸出某些想要跟蹤的變量的值,并由此來判斷腳本的執行狀態以及出錯原因,其使用方法是:

            trap 'command' EXIT 或 trap 'command' 0

            通過捕獲ERR信號,我們可以方便的追蹤執行不成功的命令或函數,并輸出相關的調試信息,以下是一個捕獲ERR信號的示例程序,其中的$LINENO是一個shell的內置變量,代表shell腳本的當前行號。

          $ cat -n exp1.sh     
          1    ERRTRAP()     
          2     {     
          3        echo "[LINE:$1] Error: Command or function exited with status $?"     
          4     }     
          5      foo()     
          6     {     
          7        return 1;     
          8      }     
          9      trap 'ERRTRAP $LINENO' ERR    
          10    abc    
          11    foo      

            其輸出結果如下:

            $ sh exp1.sh

            exp1.sh: line 10: abc: command not found

            [LINE:10] Error: Command or function exited with status 127

            [LINE:11] Error: Command or function exited with status 1

            在調試過程中,為了跟蹤某些變量的值,我們常常需要在shell腳本的許多地方插入相同的echo語句來打印相關變量的值,這種做法顯得煩瑣而笨拙。而通過捕獲DEBUG信號,我們只需要一條trap語句就可以完成對相關變量的全程跟蹤。

            以下是一個通過捕獲DEBUG信號來跟蹤變量的示例程序:

          $ cat –n exp2.sh     
          1    #!/bin/bash     
          2           trap 'echo “before execute line:$LINENO, a=$a,b=$b,c=$c”' DEBUG     
          3           a=1     
          4           if [ "$a" -eq 1 ]     
          5           then     
          6              b=2     
          7           else     
          8              b=1     
          9           fi    
          10        c=3    
          11        echo "end"

            其輸出結果如下:

          $ sh exp2.sh before execute line:3, a=,b=,c= before execute line:4, a=1,b=,c= before execute line:6, a=1,b=,c= before execute line:10, a=1,b=2,c= before execute line:11, a=1,b=2,c=3 end

            從運行結果中可以清晰的看到每執行一條命令之后,相關變量的值的變化。同時,從運行結果中打印出來的行號來分析,可以看到整個腳本的執行軌跡,能夠判斷出哪些條件分支執行了,哪些條件分支沒有執行。

            2. 使用tee命令

            在 shell腳本中管道以及輸入輸出重定向使用得非常多,在管道的作用下,一些命令的執行結果直接成為了下一條命令的輸入。如果我們發現由管道連接起來的一 批命令的執行結果并非如預期的那樣,就需要逐步檢查各條命令的執行結果來判斷問題出在哪兒,但因為使用了管道,這些中間結果并不會顯示在屏幕上,給調試帶 來了困難,此時我們就可以借助于tee命令了。

            tee命令會從標準輸入讀取數據,將其內容輸出到標準輸出設備,同時又可將內容保存成文件。例如有如下的腳本片段,其作用是獲取本機的ip地址:

          ipaddr=`/sbin/ifconfig | grep 'inet addr:' | grep -v '127.0.0.1' | cut -d : -f3 | awk '{print $1}'`  #注意=號后面的整句是用反引號(數字1鍵的左邊那個鍵)括起來的。 echo $ipaddr

            運行這個腳本,實際輸出的卻不是本機的ip地址,而是廣播地址,這時我們可以借助tee命令,輸出某些中間結果,將上述腳本片段修改為:

          ipaddr=`/sbin/ifconfig | grep 'inet addr:' | grep -v '127.0.0.1' | tee temp.txt | cut -d : -f3 | awk '{print $1}'` echo $ipaddr

            之后,將這段腳本再執行一遍,然后查看temp.txt文件的內容:

          $ cat temp.txt inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0

            我們可以發現中間結果的第二列(列之間以:號分隔)才包含了IP地址,而在上面的腳本中使用cut命令截取了第三列,故我們只需將腳本中的cut -d : -f3改為cut -d : -f2即可得到正確的結果。

            具 體到上述的script例子,我們也許并不需要tee命令的幫助,比如我們可以分段執行由管道連接起來的各條命令并查看各命令的輸出結果來診斷錯誤,但在 一些復雜的shell腳本中,這些由管道連接起來的命令可能又依賴于腳本中定義的一些其它變量,這時我們想要在提示符下來分段運行各條命令就會非常麻煩 了,簡單地在管道之間插入一條tee命令來查看中間結果會更方便一些。

            3. 使用"調試鉤子"

            在C語言程序中,我們經常使用DEBUG宏來控制是否要輸出調試信息,在shell腳本中我們同樣可以使用這樣的機制,如下列代碼所示:

          if [ “$DEBUG” = “true” ]; then echo “debugging”  #此處可以輸出調試信息 fi

            這樣的代碼塊通常稱之為“調試鉤子”或“調試塊”。 在調試鉤子內部可以輸出任何您想輸出的調試信息,使用調試鉤子的好處是它是可以通過DEBUG變量來控制的,在腳本的開發調試階段,可以先執行 export DEBUG=true命令打開調試鉤子,使其輸出調試信息,而在把腳本交付使用時,也無需再費事把腳本中的調試語句一一刪除。

            如果在每一處需要輸出調試信息的地方均使用if語句來判斷DEBUG變量的值,還是顯得比較繁瑣,通過定義一個DEBUG函數可以使植入調試鉤子的過程更簡潔方便,如下面代碼所示:

            $ cat –n exp3.sh

            1 DEBUG()

            2 {

            3 if [ "$DEBUG" = "true" ]; then

            4 $@

            5 fi

            6 }

            7 a=1

            8 DEBUG echo "a=$a"

            9 if [ "$a" -eq 1 ]

            10 then

            11 b=2

            12 else

            13 b=1

            14 fi

            15 DEBUG echo "b=$b"

            16 c=3

            17 DEBUG echo "c=$c"

            在上面所示的DEBUG函數中,會執行任何傳給它的命令,并且這個執行過程是可以通過DEBUG變量的值來控制的,我們可以把所有跟調試有關的命令都作為DEBUG函數的參數來調用,非常的方便。

            三. 使用shell的執行選項

            上一節所述的調試手段是通過修改shell腳本的源代碼,令其輸出相關的調試信息來定位錯誤的,那有沒有不修改源代碼來調試shell腳本的方法呢?答案就是使用shell的執行選項,本節將介紹一些常用選項的用法:

            -n 只讀取shell腳本,但不實際執行

            -x 進入跟蹤方式,顯示所執行的每一條命令

            -c "string" 從strings中讀取命令

            “-n”可用于測試shell腳本是否存在語法錯誤,但不會實際執行命令。在shell腳本編寫完成之后,實際執行之前,首先使用“-n”選項來測試腳本是否存在語法錯誤是一個很好的習慣。因為某些shell腳本在執行時會對系統環境產生影響,比如生成或移動文件等,如果在實際執行才發現語法錯誤,您不得不手工做一些系統環境的恢復工作才能繼續測試這個腳本。

            “-c”選項使shell解釋器從一個字符串中而不是從一個文件中讀取并執行shell命令。當需要臨時測試一小段腳本的執行結果時,可以使用這個選項,如下所示:

            sh -c 'a=1;b=2;let c=$a+$b;echo "c=$c"'

            "-x"選項可用來跟蹤腳本的執行,是調試shell腳本的強有力工具。“-x”選項使shell在執行腳本的過程中把它實際執行的每一個命令行顯示出來,并且在行首顯示一個"+"號。 "+"號后面顯示的是經過了變量替換之后的命令行的內容,有助于分析實際執行的是什么命令。 “-x”選項使用起來簡單方便,可以輕松對付大多數的shell調試任務,應把其當作首選的調試手段。

            如果把本文前面所述的trap ‘command’ DEBUG機制與“-x”選項結合起來,我們就可以既輸出實際執行的每一條命令,又逐行跟蹤相關變量的值,對調試相當有幫助。

            仍以前面所述的exp2.sh為例,現在加上“-x”選項來執行它:

          $ sh –x exp2.sh + trap 'echo "before execute line:$LINENO, a=$a,b=$b,c=$c"' DEBUG ++ echo 'before execute line:3, a=,b=,c=' before execute line:3, a=,b=,c= + a=1 ++ echo 'before execute line:4, a=1,b=,c=' before execute line:4, a=1,b=,c= + '[' 1 -eq 1 ']' ++ echo 'before execute line:6, a=1,b=,c=' before execute line:6, a=1,b=,c= + b=2 ++ echo 'before execute line:10, a=1,b=2,c=' before execute line:10, a=1,b=2,c= + c=3 ++ echo 'before execute line:11, a=1,b=2,c=3' before execute line:11, a=1,b=2,c=3 + echo end end

            在上面的結果中,前面有“+”號的行是shell腳本實際執行的命令,前面有“++”號的行是執行trap機制中指定的命令,其它的行則是輸出信息。

            shell 的執行選項除了可以在啟動shell時指定外,亦可在腳本中用set命令來指定。 "set -參數"表示啟用某選項,"set +參數"表示關閉某選項。有時候我們并不需要在啟動時用"-x"選項來跟蹤所有的命令行,這時我們可以在腳本中使用set命令,如以下腳本片段所示:

          set -x    #啟動"-x"選項  要跟蹤的程序段  set +x     #關閉"-x"選項

            set命令同樣可以使用上一節中介紹的調試鉤子—DEBUG函數來調用,這樣可以避免腳本交付使用時刪除這些調試語句的麻煩,如以下腳本片段所示:

          DEBUG set -x    #啟動"-x"選項  要跟蹤的程序段  DEBUG set +x    #關閉"-x"選項

            四. 對"-x"選項的增強

            "-x" 執行選項是目前最常用的跟蹤和調試shell腳本的手段,但其輸出的調試信息僅限于進行變量替換之后的每一條實際執行的命令以及行首的一個"+"號提示 符,居然連行號這樣的重要信息都沒有,對于復雜的shell腳本的調試來說,還是非常的不方便。幸運的是,我們可以巧妙地利用shell內置的一些環境變 量來增強"-x"選項的輸出信息,下面先介紹幾個shell內置的環境變量:

            $LINENO

            代表shell腳本的當前行號,類似于C語言中的內置宏__LINE__

            $FUNCNAME

            函數的名字,類似于C語言中的內置宏__func__,但宏__func__只能代表當前所在的函數名,而$FUNCNAME的功能更強大,它是一個數組變量,其中包含了整個調用鏈上所有的函數的名字,故變量${FUNCNAME[0]}代表shell腳本當前正在執行的函數的名字,而變量${FUNCNAME[1]}則代表調用函數${FUNCNAME[0]}的函數的名字,余者可以依此類推。

            $PS4

            主提示符變量$PS1和第二級提示符變量$PS2比較常見,但很少有人注意到第四級提示符變量$PS4的作用。我們知道使用“-x”執行選項將會顯示shell腳本中每一條實際執行過的命令,而$PS4的值將被顯示在“-x”選項輸出的每一條命令的前面。在Bash Shell中,缺省的$PS4的值是"+"號。(現在知道為什么使用"-x"選項時,輸出的命令前面有一個"+"號了吧?)。

            利用$PS4這一特性,通過使用一些內置變量來重定義$PS4的值,我們就可以增強"-x"選項的輸出信息。例如先執行export PS4='+{$LINENO:${FUNCNAME[0]}} ', 然后再使用“-x”選項來執行腳本,就能在每一條實際執行的命令前面顯示其行號以及所屬的函數名。

            以下是一個存在bug的shell腳本的示例,本文將用此腳本來示范如何用“-n”以及增強的“-x”執行選項來調試shell腳本。這個腳本中定義了一個函數isRoot(),用于判斷當前用戶是不是root用戶,如果不是,則中止腳本的執行

          $ cat –n exp4.sh      1  #!/bin/bash      2  isRoot()      3  {      4         if [ "$UID" -ne 0 ]      5                  return 1      6          else     7                  return 0      8          fi      9  }     10  isRoot     11 if ["$?" -ne 0 ]     12  then     13          echo "Must be root to run this script"     14          exit 1     15  else     16          echo "welcome root user"     17          #do something     18  fi

            首先執行sh –n exp4.sh來進行語法檢查,輸出如下:

          $ sh –n exp4.sh exp4.sh: line 6: syntax error near unexpected token `else' exp4.sh: line 6: `      else'

            發現了一個語法錯誤,通過仔細檢查第6行前后的命令,我們發現是第4行的if語句缺少then關鍵字引起的(寫慣了C程序的人很容易犯這個錯誤)。我們可以把第4行修改為if [ "$UID" -ne 0 ]; then來修正這個錯誤。再次運行sh –n exp4.sh來進行語法檢查,沒有再報告錯誤。接下來就可以實際執行這個腳本了,執行結果如下:

          $ sh exp4.sh exp2.sh: line 11: [1: command not found welcome root user

            盡管腳本沒有語法錯誤了,在執行時卻又報告了錯誤。錯誤信息還非常奇怪“[1: command not found”。現在我們可以試試定制$PS4的值,并使用“-x”選項來跟蹤:

          $ export PS4='+{$LINENO:${FUNCNAME[0]}} ' $ sh –x exp4.sh +{10:} isRoot +{4:isRoot} '[' 503 -ne 0 ']' +{5:isRoot} return 1 +{11:} '[1' -ne 0 ']' exp4.sh: line 11: [1: command not found +{16:} echo 'welcome root user' welcome root user

            從輸出結果中,我們可以看到腳本實際被執行的語句,該語句的行號以及所屬的函數名也被打印出來,從中可以清楚的分析出腳本的執行軌跡以及所調用的函數的內部執行情況。由于執行時是第11行報錯,這是一個if語句,我們對比分析一下同為if語句的第4行的跟蹤結果:

          +{4:isRoot} '[' 503 -ne 0 ']' +{11:} '[1' -ne 0 ']'

            可知由于第11行的[號后面缺少了一個空格,導致[號與緊挨它的變量$?的值1被shell解釋器看作了一個整體,并試著把這個整體視為一個命令來執行,故有“[1: command not found”這樣的錯誤提示。只需在[號后面插入一個空格就一切正常了。

            shell中還有其它一些對調試有幫助的內置變量,比如在Bash Shell中還有BASH_SOURCE, BASH_SUBSHELL等一批對調試有幫助的內置變量,您可以通過man sh或man bash來查看,然后根據您的調試目的,使用這些內置變量來定制$PS4,從而達到增強“-x”選項的輸出信息的目的。

            五. 總結

            現在讓我們來總結一下調試shell腳本的過程:

            首先使用“-n”選項檢查語法錯誤,然后使用“-x”選項跟蹤腳本的執行,使用“-x”選項之前,別忘了先定制PS4變量的值來增強“-x”選 項的輸出信息,至少應該令其輸出行號信息(先執行export PS4='+[$LINENO]',更一勞永逸的辦法是將這條語句加到您用戶主目錄的.bash_profile文件中去),這將使你的調試之旅更輕松。 也可以利用trap,調試鉤子等手段輸出關鍵調試信息,快速縮小排查錯誤的范圍,并在腳本中使用“set -x”及“set +x”對 某些代碼塊進行重點跟蹤。這樣多種手段齊下,相信您已經可以比較輕松地抓出您的shell腳本中的臭蟲了。如果您的腳本足夠復雜,還需要更強的調試能力, 可以使用shell調試器bashdb,這是一個類似于GDB的調試工具,可以完成對shell腳本的斷點設置,單步執行,變量觀察等許多功能,使用 bashdb對閱讀和理解復雜的shell腳本也會大有裨益。關于bashdb的安裝和使用,不屬于本文范圍,您可參閱 http://bashdb.sourceforge.net/上的文檔并下載試用。

          【Shell腳本調試技術】相關文章:

          AutoCAD腳本制作10-27

          影視廣告的腳本創作08-26

          Linux shell常用命令匯總10-26

          ASP腳本循環語句詳細教學01-23

          電影電視分鏡頭腳本格式09-23

          Linux系統shell工具打印輸出12-26

          Linux Shell文本處理工具10-08

          游戲中實現腳本控制的干貨分享07-24

          聲卡怎么調試01-11

          數控機床對于安裝和調試階段有什么技術要求?06-18

          主站蜘蛛池模板: 西游记后传优酷| 日剧《太想被你爱了》百度云| 巜生殖按摩女3在线播放| 理想之城全集| 雷杰多奥特曼国语全集| 义姐是不是良妈妈动漫第集在线看全集免费| 名字打架| 碟中谍5在线观看高清完整版| 美容店的特殊待遇| 火线干探| 黑袍纠察队 第四季 免费| 浮之公9| 密爱 优酷| 余罪第三季在线观看免费高清全集| 英雄百夜电影| 肥嫩多毛的大荫户| 漂亮妈妈中字开头字| 兵心依旧| 老舅1-27集免费看| 张警官三部曲| 《爱情回来了》电视剧| 邝美云大悲咒歌词| 年轻母亲6中文字版免费| 短道速滑王蒙| 漂亮的小姨韩剧免费观看完整版电视| 基督山伯爵电影在线观看| 电影《快乐的波霸》| 伦理电影爸爸我要你的种子在线观看| 郑州换纱窗| 《妻子的浪漫旅行2026》| 渔夫荒野正版免费观看 | 我怎么哭了| 白峰美羽高傲女教师| 女体统电影完整版免费观看高清| 年轻的阿姨5中字在线播放| 女版捉鬼敢死队法国空姐 | 插式治疗专业医院1-5集| 酒店激战2第5集在线播放| 朝云暮雨完整版免费观看电影| 青面修罗| 新星小镇| 再生缘电视剧| 坎贝奇成人电影无憾| 胜女的代价大结局| 《被拒绝的爱》泰剧免费观看| 相叒游戏1-2集全集免费观看第三季 | 风月无边是醉乡| 袁娅维冲榜成功| 巜生殖按摩》| 因为是反派大小姐所以养了魔王| 扫毒风暴电影| 《熊出没》免费观看完整版| 电影《千金女神》郝板丽| 高清《飓风营救1》完整版| 《房屋销售的秘密》2 | 颐和园 未删除版本| 再见艳阳天保剑锋版| 老同学36普通话| 爱情有点蓝全集下载| 《主妇与装修工》大结局一木百子 | 三姐妹瑜伽完整版免费看| 奇妙的朋友 综艺| 电影在线观看完整版免费励志| shameless第二季在线播放| 佐佐木与宫野| 大兵的寝室免费观看| 中北大学文科有哪些专业可选| 盗花野史| 佐罗满天星版被禁播原因| 青柠剧情电影免费观看全集| 金牌销售的秘密3完整版| 《拯救地球》| 我的辅导老师| 熟睡中被义子侵犯电影| 秋香怒点唐伯虎| 环太平洋2| 三农资本| 双探电视剧在线观看| 电影《女子护卫队》在线观看免费 | 我的父亲母亲的婚姻 电视剧| 东北二人转正戏| 妻子抵债| 夺命狙击2电影| 天堂旅行团| 美丽的小樱桃意大利| 最后一枪百度影音| 多人轮换电影中字| 海豹六队第一季| 美女拳击赛| 三年大片在线观看免费国语版动电话 | 陈伟霆演的鸭的电影名字| 掌中雀短剧| 正在缩小的男人电影| 百日的郎君| 后营露营第二季无增减| 闺蜜情敌| 五号特工组第三部免费观看完整版| 佘诗曼吹哨召唤张智霖| 警察锅哥40全集免费| 爱你几何在线观看全集免费| 精灵旅社3| 女毒枭 兰姐| 恩典电影| 22集电视剧女特警| 法国空乘4免费高清原声满天星美版百度 | 古墓丽影山寨版免费观看| 高考2021年几月几号考几天| 金瓶梅下| 《初恋时间》1-6免费观看全集 | 凤凰传奇歌曲下载| 透光的树| omoflow第一集真人| 高清《鬼父上卷》1| 牙医姊妹在线观看完整 | 黑白配2018| 封神英雄80| 杨利伟是神州几号| 叶玉卿 卿本佳人| 千日的约定| 中文字Dl幕岳 和女胥友田在线| 致命怪谈2电影完整版| 侵略!乌贼娘| 雷波县| 真实real| 激战厨房4美国| 猎狼者 电视剧| 天剑绝刀电视剧| 惊声尖笑1免费完整版高清| 天降艳福不是福| 电影《朱莉》凯帕克| 纽约我爱你| 新版金银悔5-8普通话1| 亲爱的客栈第二季| 美女死尸| 冬之蝉下载| 电视剧小站风云| 瓜达卢佩的玫瑰完整版免费观看| 黑莲花攻略手册免费阅读完整版| 古堡女仆的服务电影免费观看| 雪花神剑全集| 口红森林| 《售楼小姐的秘密》的秘密| 再喊一声爹娘| 法国版女超人:麦乐迪在线观看| 电锯惊魂4在线观看| 坎贝尔《无憾》| 肚子抽脂多少钱| 房奴试爱电影片尾曲| 凶猛的办公室| 比特犬多少钱| 陆小凤传奇1| 高清丰臣兄弟!未删减| 理发店里的特殊待遇| 我有时候也想成为a片主人公| 俄罗斯女超人麦乐迪| 龙器电视剧在线看免费观看| 剑王朝电视剧免费观看| 售楼女王在线观看| 暧昧失温短剧全集在线观看| 变成黑皮辣妹后朋友做了无石头的梦 | 我们的当打之年电视剧| 古堡女仆服务电影在线观看| 黑暗阴影在线观看| 黑暗计划2012美国电影| 森林深处的秘密花园| 哈哈哈哈哈第二季免费观看完整版| 牙医电影完整版2000年| 热力四射2下载| 本乡爱拍的电影| 大阅兵重播| 校园教育1980在线观看免费版下载| 武朝迷案| 甄嬛传免费全集观看完整版在线| 可疑的美容院韩剧| 寄生兽动漫| 《魔力宝贝监狱》电影| 古墓丽影特别版| 曹查理电影完整版| 两个人观看的视频| 渔夫荒野史完整版电影| 韩国18禁电影少女们的痛苦| 女海盗电影在线观看完整版| 奇门遁甲国语版| 花儿与少年6免费观看| 孤单又灿烂的神-鬼怪 百度云 | 一闪一闪亮星星电影| 张若昀人之初在线观看| 沉默的舰队电影| 欲望的岛屿| 马达加斯加2高清| 克里斯汀满天星三部曲| 夫妻一场电视剧免费观看| 30插曲免费高清在线观看完整版国语| 恶作剧之吻1台湾版| 爱我几何电影完整版在线播放免费观看莫尼卡 | 在那遥远的地方电视剧| 客户名单电影| 李黎跳芭蕾舞视频| 如果时间有回音| 性的暴行2小时16分| 在异世界迷宫开后迷宫无修改版| 《罗丽星克迷宫》免费观看| 李小龙电影猛龙过江| 湖南卫视好好生活| 我的性感女老师| 绑架大明星在线观看| 斗罗大陆在线观看免费高清| 一起愁愁免费观看视频播放| 人到中年电视剧全集| 皓龙长空短剧全集免费观看完整版 | 我成了他的班主任| 小心肝儿美国电影免费观看完整版| 法证先锋6粤语版免费完整版高清| 斗罗大陆免费完整观看207| 三年大片中文在线观看免费国语全集 | 无限滑板动漫樱花| 暴劫倾情精彩片段| 插曲的痛30集全集免费播放电影爱情 | 浩劫妙冤家| 唐伯虎在线vlog免费观看全集中文| 希望你不要太介意| 卓仕琳七老板吞金| 爸爸的种子伦理剧| 公媳在线观看| 神探默多克第一季| 高压监狱香港| 淘宝公布2023年度丑东西| 理发师电影| 日本三级片我和保姆阿姨| 蟒蛇大战| 加藤ツバキ| 红罂粟第三部| 聊斋艳谭之孽欲孤鬼| 异世界迷宫里的后官第四集| 嫌疑人x的献身日版| 守候我们的幸福| 1986《牙医姐妹》电影完整版| 豆腐发源地是哪里| 飓风营救1完整版在线观看| 落魄贵族琉璃川免费观看| 生粉的作用| 至上之法| 入室强奸三级片| 加菲猫家族电影中文版免费观看| 暗花国语| 《我的游泳女教练》电影| 孙阳妈妈说儿子演得太坏了| 腾格尔没放过《爱你》| 社长与下属妻子韩国| 扒开双腿疯狂进出爽爽爽动态照片| 你微信时很美| 永恒紫罗兰花园| 寻龙传说电影| 用心过日子| 欧美5| 恶作剧之吻16| 国家审计电视剧全集在线观看| 中国三级《偷妻》| 红楼视频在线观看免费播放电视剧| 三年中国高清在线观看| 自白在线观看完整版电影| 铿锵铿铿锵在线观看| 花子君第二季普通话版| 《越南女兵满天星》电影免费观看 | 西班牙掌中之物在线观看完整版| 月光宝盒私人免费影院 | 婶婶免费观看| 紫阳县| 年轻的母亲的(3)| 激战酒店1-9集在线播放最新版本更新 | 孤男寡女战狼4妈妈结局| 日本电影《姐妹牙医》1986在线播放 | 三位大学位按摩记在线观看| 欢天喜地七仙女2| 荣誉守则2013| 《荆棘》| 法国监狱的电影| 遍地狼烟在线观看| 电影《香醇的绣感》在线观看 | 家政老师2免费观看全集电视剧| 恋爱先生免费观看全集| 肉欲继拇| 老严有女不愁嫁片尾曲| 空姐妻子的秘密第三季剧情介绍| 教室那一间| 双女任务在线| 好姐妹高清在线观看完整版| 《美丽女儿替父亲还债》剧情电影电 | 燃烧大地| 三更之饺子第一集| 玛德琳斯托大r度| 金华律师朱建忠| 爱在太空| 电影《风声》在线观看| 如何关闭腾讯微博| 好好生活电视剧| 《少妇》6| 好姑娘8完整版在线观看全集| 高清《第一次的辣妹》动漫| 小小的我电影免费观看易烊千玺 | 甘城光辉游乐园在线观看| 《变态性刑房3》电影| 《葡萄成熟时》短剧全集| 高冷搜查官白峰美羽遇上猪队友| 爱我就别想太多免费全集电视剧全 | 电影《在丈夫面前被劫匪欺负》电影 | 禁忌6年转一代| 仁光受难记| 爱情宝鉴叶子楣版| 渔女实战| 霍比特人 字幕| 破坏之王电影免费观看完整版国语 | 高清《最长的一天》电影在线观看| 《高压监狱2》法国| 电视剧好好生活| 重写全集观看| 保险员2朴银狐| 斗罗大陆在线观看全集免费| 理想之城全集| 麦乐迪家庭矛盾3| 港台古装三级| 谍影重重1电影| 上思县| 韩国主播门| 逆风而行电视剧全集免费版 | 米奇电影| 古灵精探b粤语| 布鲁克读大学1984完整版| 狙击手电影| 河北梆子辕门斩子全集| 后营露营第二季无增减| 空姐2免费高清完整版观看| 女友的妈妈4完整视频有翻译英文| 同学的妈妈韩国| 妹妹公主repure| 假面骑士REVICE第五集| 密桃仙子| 鬼神童子国语| 生化危机5惩罚完整版| xl司令全集在线观看| 洪兴大飞哥| 女侯爷:朝野无敌全集免费| 壮志凌云女版满天星法版免费观看| 网红乞丐哥被抓| 免费无毒韩国R片《韩国三级》| 幸运儿电影| 艳情电影邻居的阿姨| 无颜之月1~5集无删减观看策驰 | 隋唐英雄75| 反毒风暴在线观看免费版| 苹果电影未删减版| 孤独的美食家第五季| 法国监狱女狱警2免费观看| 把腿把开学长都给你高| 双重曝光韩剧免费观看完整版| 驱魔人百度影音| 回复术士118集真人版剧情介绍 | 《高压监狱2》在线观看| 中国特种部队宣传片| 横峰县| 帕那索斯博士奇幻秀| 布里奇顿 第四季全集观看 | 女版战狼10国语版免费观看电视剧| 飞驰人生1免费观看全集| 我要爸爸的种子第一季免费观看 | 高清《月鳞绮纪》电视剧| 高压监狱2无删减完整版| 危险伴侣| 《湿润的女邻居》| 吕良伟电影全集国语| 意大利电影《情迷2》的剧情简介| 恋之罪免费观看完整版高清| 湿润的继拇HD中文3| 打回原址电影| 《和讨厌的部长出差》大结局免费看| 天使之恋 纯爱物语| 弟弟的女友 电影| 大明风华免费策驰影院| 我的母亲2| 麻生香织电影在线| 冰女的故事| 《四个混血大学生》2完整版| 我本千金电视剧免费观看| 愤怒的她短剧免费观看| 军事行动布兰迪啄木鸟| 办公室糟蹋秘书在线观看| 农场保卫战| 叶子楣经典电影《聊斋》| 男生吃女生的兔子头会变黑吗| 驯服小姨子2中文字幕| 苍井空老师的全部电影| 凯特的外遇日记| 潮与虎动漫| 天赐的声音第五季综艺| 米奇妙妙屋之大搜寻| 法国经典电影女狱警》理论片高清在线观看 - 全集韩国剧 -南瓜...导演:William | 娃娃脸1电影完整版在线观看| 歼灭天际线1-87集免费酒店的女人| 红高粱电视剧迅雷下载| 公主驾到:群臣跪拜完整版观看| 女邻居竟是绝色护士| 换乐无穷| 正阳门下电视剧36集全免费| 叙利亚地图中文版| 加勒比海盗5 死无对证| 保罗2在线观看| 火凤皇特种兵| 圣特罗佩斯的姑娘们全集免费播放 | 爸爸的种子2| 灌篮高手特别篇| 红楼梦免费完整版在线观看| 摇曳露营第二季动画| 银翼杀手| 一起愁愁电视剧40集在线观看| 飓风营救1电影| 新白娘子传奇免费版| 没戴奶罩的瑜伽教练| 佛光山早课| 牙医姐妹1986完整版资源| 风语者高清| 《新入职的女员工》全集| 一点就到家免费观看| 安徽卫视甄嬛传首映礼完整版| 已婚妇女的下午 主演| 意大利电影《忠贞》2| 《极乐宝鉴2》电影观看在线| 长津湖2021在线观看完整版| 电视剧长沙保卫战全集在线观看| 丁巴度电影在线免费观看| 死神316| 包青天之开封奇案第40集免费观看| 免费看我要爸爸播种子| 阿浅来了国语电视剧免费观看| 我不会爱你| 不戴套交换系列17部分吴琴| 女生刘海两边的头发叫什么| 凯莉布鲁克满天星三部曲是哪| 《永生》第二季免费观看完整版| 大梦周天动漫在线观看免费播放全集| 安奇拉拉的电影| 大鱼海棠| 战火熔炉在线观看| 银瓶梅电视剧高清免费观看| 爱情公寓盗墓笔记| 爱我几何原版无删减版| 《弓》电影在线观看免费版高清| 海上繁花全集46集哪里可以看| 啄木鸟《劳拉的遗产》叫什么| 昼颜1993版电影完整版观看| 正在播放:黑人巨屌 Karla Kush 金发美女对战大黑鸡巴 - 17 | 人间中毒在线观看整板| 午夜人在线观看完整版| 武林风全球功夫盛典| 我爱狐狸精在线观看完整版| 我的家电视剧| 姐妹牙医观看| 爱欲韩国电影| 三门峡市| 月光永不坠落短剧免费观看| 开放性成人交友网站| 克里斯蒂满天星| 野兽迷宫电影免费播放在线观看| 珍珠美人鱼小游戏| 仙逆红蝶| 淑蓉又痒了办公室献身| 韩国伦理水电工| 魔法咪路咪路第3季| 诱人的女房东3| 无法传达给你在线观看日剧| 怪奇物语第一季4k资源免费观看 | 摆渡人免费观看完整版高清| 永福县| 沉香如屑全集在线观看| 曾国藩电视剧| 需要爸爸的播种2| 恶作剧之吻第一部优酷| 坂本真绫 铃村健一| 程序员那么可爱分集剧情介绍| 幸存者电影| 恋爱支招| 我爱神仙遮国语在线观看 完整版| 穿越之医妃难囚全集免费| omoflow第一集真人版免费观看 | 伏妖白鱼镇3除魔卫道| 花与蛇麻醉牙医诊所| 司藤电视剧全集免费版在线观看 | 年轻的瘦子最新版免费观看| 猎罪图鉴2免费版观看| 梁家辉情人完整版| 牙医妹妹 电影在线观看| 给我完整版在线观看| 需要爸爸种子免费观看电视剧意大利| 免费观看唐人街探案3电影完整版 惊变1—42集免费观看电视剧 | 冷眼看客| 超神学院第三季| 啄木鸟:女版《壮志凌云》演员 | 行尸走肉第二季第二集| 叶子楣电影《聊斋》高清国语版| 白峰电影在线观看550| 东成西就完整版| 小大夫电视剧| 乡村爱情5部免费全集电视剧| 老公的上司来家里韩国电影 | 高清《流动资产》电影| 女人是男人的未来| 法国版少女完整版| 央视新年新诗会| 法国护士长伦理片在线观看| 人与动物免费观看电视剧完整版| 《女销售员:满天星》电影简介| 新网球王子ova4| 我愿意国语版电视剧| 大江大河3第53集免费观看| 白蛇:缘起电影| 《花与蛇牙医》在线观看| 电视剧珠光宝气| 屠场娃娃高清完整版 | 一个好妈妈的D5申字中头| 墓地亡灵| 新金银悔1-5普通话| 封神英雄榜1部| 电影《爱我几何》高清在线看| 斗罗大陆106集| 点燃我温暖你更新时间| 成全免费视频在线观看 | 夫人的侄子1994剧情简介| 高清《谎言》在线观看| 插曲的痛第60集免费观看高清下载| 酒后和朋友换娶妻中字| 水落石出第一部高清| 高清危情蜻蜓未删减| 年轻母亲2中文字幕| 电影《香港奇案》| 法证先锋4国语版免费下载| 唐宫美人天下迅雷下载| 碧血青天杨家将| 日本牙医姐妹电影完整版| 龙王的工作| 三家购物| 金花瓶1999| 小小影视大全在线观看电视剧免费| 法航空姐11季最新更新内容| 蜜月酒店杀人事件 电影| 法医秦明之读心者免费看| 世界第一初恋第二季10| 合成大西瓜网页版链接| 房奴试爱电视剧开头原声带| 瞄准全集免费观看| 鬼吹灯之天星术国语版| 关之琳高尔夫| 一周的朋友电影在线观看| 麦乐蒂在线观看| 电视剧家门的荣光| G版《法国空少》免费| 高清宇宙面包店| 浪漫女教师黛比无删减版| 少女大人电视剧在线观看| 秘密行动组| 新人女职员的诱惑韩国电影在线观看中文字幕 | 打烊后仅剩二人的沙龙| 间谍过家家全集| 再见黄浦江| 黑白配hd1080免费观看下载| 我要打鬼子全集| 我家女友可不止可爱呢| 观看免费完整版高清电影| 酒店服务员电影免费观看| 雾蓝色的雨后晴天未删减| 飞虎出征电影| 红安县| 坎贝奇品味人生观看| 银魂174| ZLJZLJZLJ日本妈妈| 麦乐迪爸爸不让她出门是什么电影| 回复术士的真人版第9集预告片| 哔哩哔哩高清免费观看| 半是蜜糖半是伤免费观看全集完整版 | 类似战狼六的欧式少女电影| 姜子牙电影在线观看| 沙漠女王1983意大利| 林伟健10部必看电影| 俄罗斯电影《绣感》在线观看| 与凤行电视剧在线观看60集| 后宫 帝王之妾在线观看| 《荣誉准则》满天星在线看| 搜下留情电视剧| 瓜达卢佩的玫瑰免费播放完整版电影| 《建国大业》| 楼下的租客| 村妓经典k8| 仙女湖免费观看电视剧全集 | 匹夫电影高清完整版| 凯登克罗斯电影高清播放 | 醉酒趁虚而入电影免费观看高清| 斗破苍穹第175集免费播放| supergirl麦乐迪完整版| 韩国卖保险的销售电影| 匆匆那年:好久不见| 做aj的电视剧大全免费观古代| 纯真岁月| 漳州市| 阿修罗道在线观看免费观看| 解放的潘多拉剧情| 出差遇到的渣男前任| 高清《灭火宝贝(高压监狱)》| 女战狼10国语版在线播放免费观看 | 《狂舞尸城》电影在线观看完整免费| 野花在线观看视频免费| 特殊酒店2| 年轻善良的岳母| 超市监控4天拍下上百次盗窃| 女老板的滋味| 维修工的艳遇韩国| 苌怎么读| 《八尺夫人意大利满天星》完整版伦| 地球上的爱人| 东北警察故事 2| 空即是空电影完整版| 与讨厌的部长一起去出差旅电影| 乌贼娘第一季| 不忠电影在线观看免费完整观看| 爱的理想生活大结局| 爱我几何莫妮卡完整版| 霹雳布袋戏刀龙传说| 纯真时代| 学校风云免费| 暴躁老妈1-46集全免费观看高清版百度 | 三万英尺的暗恋免费观看完整版| 韩剧特邀外卖员| 意外有了皇帝的孩子漫画免费观看| 暴劫倾情精彩片段| 羊急了也跳墙未删减在线观看| 功夫熊猫电视剧| 婚外迷情未删减完整| G版2010法国空少| 复仇者联盟4在线观看| 麦子交换3普通话版本在线观看| 日和漫画中文配音| 特殊诊所| 爱上姐姐| 出轨韩剧| 圣托贝热女孩1982国语版免费观看| 军火女王 第二季| 在姨母家的客厅完整版| 中科院院士:长新冠是基本事实| 台湾甘露粉红色的梦| 极上中出-村上里沙| 一见钟情| 曹查理《浪蝶狂花》演员表| 新金瓶高清完整版百度影音| 孝义市| 赌侠2电影| 赢钱专家未删减版高清| 房奴试爱开头电视剧原声| 古惑仔胜者为王国语高清 | 赛尔号第11季裂空沧海| 妙妙米奇屋| 蜜桃的成熟时| 战神归来:守护妻女短剧全集| 圣斗士混沌篇| 美国式保罗2越演越烈| 爱有多远| 七十二春免费观看播放| 新员工2中字ID| 精灵宝可梦樱花免费观看| 爱情公寓3在线观看| 豚鼠系列在线观看| 坎贝奇电影| 古惑仔胜者为王国语高清| 铃原爱蜜莉 迅雷下载| 火影忍者h动漫| 植物人老公短剧全集| 《头脑特工队》2| 黑白配HD版大全免费观看| 一首歌祝福新疆| 宁静拍到了七彩祥云| 《千金小姐》完整观看| 杀死比尔电影高清未删版| 年轻气盛| 性解密| 高达00第二季下载| 环太平洋种子| 蜘蛛侠3英雄无归在线| 日本电影《叔嫂恋曲》中字| 大唐诡事录2免费观看完整版| 海贼王国语版全集国语版| 《性迷宫》吴雪雯在线| 叶玉卿《卿本佳人》高清| 高清《西北往事》电视剧| 善良姐姐的朋友| 大风杀电影完整版在线播放免费观看| 97在线播放免费观看| 卸岭秘录电影免费观看| 高清《繁花》免费播放在线观看全集| 需要爸爸播种在线免费观看| 宜昌保卫战电视剧全集| 女帝夺江山:拥美男入怀短剧全集| 轩辕剑之天之痕| 爵迹2冷血狂宴完整版| 《妻子7》在线观看全集| 全民枪神| 卖房子的女销售在线看| 明天我不是羔羊电视剧| 甜蜜惩罚2在线观看| 十九岁粤语在线播放| 凌云壮志(欧美)满天星主演叫什么| 纱漠行动| 鞠婧祎免费造梦在线观看| 麻吉弟弟| 向风而行电视剧四十集| 美国式的家庭禁忌2大结局人与动物| 寄生兽生命的准则| 绝密型战| 剑谍在线观看| vip电视剧免费观看| 黄河大侠电影| 义子的侵犯在线播放| 新建文件夹电影在线观看| 神探狄仁杰第四部44| 牙医姐妹赤子板栗| 至尊食王电视剧免费观看| sikisiki原曲| 孙红雷一代枭雄电视剧| 我的23岁女老板免费观看完整版| 村枝1994| 爱人免费收看| 沧元图第二季59集完整版| 出包女王 第2季| 法国空姐4终极版免费完整| 曹查理电影完整版| 女人不容易电视连续剧| 危情 陈雅伦| 盖世帝尊动漫在线观看完整版| 新瓶梅| 巡回检察组35集在线观看免费| 奔跑吧兄弟第十一季| 成吉思汗电视剧音乐| 老人步行街尾随女生摸臀被抓| 私人航空在线播放| 高朋满座近义词| 满江红电视剧免费观看| 《环太平洋2》完整版在线观看| 超能失控| 电影巜商务旅行戴帽子| 古畑任三郎国语| 笑傲江湖29| 俄罗斯版《女儿国》2| 棋手颜成龙再回应肛珠作弊传言| 余烬之上电视剧观看| 我从不忠截取的一段画面 | 桑叶无删减| 长相思第二季免费播放全集| 一门三司令在线观看| 韩国美容店的待遇5HD| 0女员工的付出中字| 让我疯狂| 月升沧海电视剧| 田野上的白发 阅读答案| 湖南省| 特殊美发美容3| 长相思第二季电视剧免费完整版| 郭德纲枪毙任老道| 科学怪妓在线观看| 装台免费版在线观看| 电影激战丛林在线观看完整版高清 | 爱情睡醒了33| 警花交换| 韩剧《王国》在线观看| 高清我的山与海未删减| 间谍过家家动画在线观看免费版 | 芭比之神秘之门普通话免费观看| 牙医姐妹电影| 陈情令入围全球50大电视剧| 黑帮老大的365天第一部未删减| 房东3| 新娘十八岁电视剧国语版全集 | 远得要命的爱情电视剧| 麦迪时刻35秒13分高清| 风流岁月全集| 韩国免费性爱电影需要爸爸的种子| 斗罗大陆217在线观看| 阿拉伯电影绝色在线观看免费| 甄嬛传7| 张韶涵易天边回忆杀暴击| 赫板栗电影在线观看| 谷围南亭一季免费观看| 王牌对王牌第六季免费观看| 鬼灭之刃 锻刀村篇| 乳房影院| 再生缘电视剧| 朋友的姐姐4线在完整中字| 小鸭子老师| 单亲妈妈4免费高清完整版观看| 惊声尖叫4百度影音| 明里柚《和部长一起去出差旅》中文 | 美乃雀电影免费观看| 电影《野兽暗夜》完整版观看| 尖峰时刻2国语版| 女超人(满星版)麦乐迪观看| 高清《熊出没》| 电视剧危情杜鹃| 美容店的待遇5HD电影| 暖暖的微笑在线观看免费完整版| 东北往事之黑道风云全集| 拐个皇子回现代| xl司令动漫第一季全集无马赛克| 《手》在线观看电视剧免费| 策勒县| 2对1:三人一次性体检日剧| 影子爱人电影| 晚安为我而眠的妹妹| 火口的二人完整版在线观看电影| 电视剧《雪狼》完整版| 居家男人| 我的妹妹不可能那么可爱h| 电影《美容院的特殊待遇》4演员表 | 降龙神掌苏乞儿| 电影我的兄弟姐妹| 只属于我的女神| 《妻子与游泳教练》| 《伯爵夫人和园丁| 也平凡1-45集免费观看| 停车坐爱枫林晚全诗| 呈贡县| 麦乐迪女超人A片免费看| 淘金在线观看| 机甲女神之究极神兵| 韩剧《下属的妻子》主演名单表| 最棒的情人沼,不关乎工作与家庭免费观看| 小麻薯百变衣柜教程| 蝴蝶公墓网站| 圣特罗佩的姑娘们免费播放| 理妻子征服理发店| 美人龙汤全集| 肉蒲团 在线观看| 女子私人监狱美国版电影免费观看全 | 张艺兴诉b站侵权案将开庭| 甄子丹大闹天宫全集| 《侄女的开发日记》漫画观看| 初音未来h小游戏| 魔女宅急便电影| 三年中国高清在线观看| 大哥大续集| 莫妮卡裸全乳无删减电影| 文豪野犬第四季免费观看简体中文| 《溢出》第一季免费观看全集高清版| 哪吒3免费高清在线观看| 义胆群英| 一虎一席谈 孔庆东| 高庄监狱在线观看网址| 繁华落尽40集免费播放|