<kbd id="fugzo"></kbd>
<pre id="fugzo"></pre>
    1. <fieldset id="fugzo"><style id="fugzo"></style></fieldset>
      <center id="fugzo"></center>
    2. 哑剧盖章,电视剧折腰免费观看全集,亮剑3gp下载,秘密访客,泰剧为你着迷,古城童话,食物链无删减,大鱼海棠

      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

      主站蜘蛛池模板: 抖音美好奇妙夜直播中| r片| 岁岁年年柿柿红| 出差被前男友欺负在线观看第1季免费| 《杀出黎明》| 父母爱情免费观看| 甄嬛传51集| 真破血国语版高清免费看| 《密爱》2002完整版| 霜花店无删减版| 女友的妈妈在线观看| 乡村小老板:致富带全村全集免费| 黑白配高清国语观看| 千年僵尸王国语版高清| 韩国电影r在线共食| 东京奥运会回放| 女版壮志凌云2011| 黑帮生意| 满满喜欢你免费观看| 和部长一起去出差旅电影叫什么名字| 佳期如许| 美国电视剧禁忌第三季| 战勇第二季| 夏日情人在线观看| 女律师的堕落HD高清播放| 高清《虎啸龙吟》电视剧| 洗屋先生我和| 黑暗森林莉娜安德森全集免费看 | 战狼电视剧| 和讨厌的前男友一起出差电影| 水元优奈| 种地吧少年第一季| 线上需要爸爸的种子| 鬼客韩剧在线播放免费观看全集| 徐悲鸿电视剧全集免费| 爹地是星际霸主:星际萌宝短剧全集| 电影追影| 白峰电影在线播放免费版| 水怪2黑木林电影免费观看| 风暴西瓜在线观看免费完整版| 满天星《炎热的家庭》播放| 求婚电视剧| 美之祭品| 天海翼秘密女搜查官在线观看| 高清《美人心计》免费观看| 名侦探柯南563| 高柳花嫁动漫全集樱花| 行尸走肉第三集| 天降之物剧场版| 还珠格格风儿阵阵吹| 为你千千万万短剧68集| 兔子先生免费全集在线观看| 娘亲舅大电视剧| 慈禧太后秘密生活| 美国男篮vs法国| 幸福的旅程| 新金银悔5一1手机版免费看| 少林寺电影| 小姨子在线免费观看| 漂亮的妈妈7中字开头6个字| 情欲九歌无删在线观看| 电影《心动》| 淫方程式动漫1~2集免费观看| 《怦然与你》| 鲜花朵朵全集下载| 祥仔更多大片访问| 非亲父子演员表| 陪部长出差| 女武神第3季免费观看高清| 女律师替丈夫还钱电影免费观看| 神印王座179完整版| 农民伯伯下乡国语版吴健视频| 电视剧怒放| 康平县| 快播制服丝袜| 罗小黑战记40| Jizz日本| 美少女战士免费观看| 《逆爱》1-24集全| 麦乐迪父亲和女儿| 一龙一猪| 大秦赋全集| 韩国三级维修师傅的艳遇 | 今年夏天| 插曲的痛60集全集免费| 我的拿手好戏一一吃屎| 全职高手第二季第八集| 三年成全在线观看免费播放大全| 小美人鱼电影| 嘼皇VICTORYDAY愤水| 天美影院在线观看免费观看电视剧大全| 逆局电视剧免费观看全集完整版| 蜜桃成熟了| 入室强奸的三级片| 独步天下免费全集播放| 河北三佳购物频道| v酒店第一季完整版| 劲爆的士高| 名侦探柯南620| 妲己np从小被c到大| 天外来客影视下载| 千纸鹤怎么折| 成人性生交A片免费看武则天| 电影情劫| 天全县| 沧桑情歌dj| 宁安如梦剧免费观看策驰| 恶意编年史| 在世界尽头咏唱4集原版| h视频| 家中有喜电视剧全集| 生活有点甜电视剧| 哦吼小闪电的真名叫什么| 《水电工的艳遇》电影观看 | 《正义联盟2》电影| 我的好朋友瘦子8| 暖春小花电影版| 永不磨灭的番号33| 同学的母亲中字ID英文| 婚里婚外那些事剧情介绍| 百花奖总导演致歉| 初体验5第一季免费观看| 天城山奇案| 下水道的美人鱼百度影音| 总统夫人在线观看罗丽星克莱尔| 废子夺嫡之强龙归来短剧免费观看| 黑白潜行2 电影| 一起愁愁愁30分钟电视剧免费观看| 金瓶艳谈| 无限挑战歌谣祭| 聊斋在线观看免费全集| 都市修罗殿主全集免费观看| 44毛网| 花与蛇4下载| 禁忌1980满天星凯·帕克 | 八戒八戒七| 幸福面条国语版全集| 东风-21导弹| 扫黑风暴2021免费播放| 地下偶像在线观看免费高清全集| 让你妹飞2| 两个人的视频在线观看| 她很漂亮电视剧韩国| 女保险公司推销员8中字的特点| 我们都要好好的45集免费观看| 沙月由奈| 《小舍得》免费高清在线观看完整版 | 《和讨厌的部长出差旅》大结局 | 如懿传第二卷| 《朋友夫妻:交换4》韩国| 一仆二主电视剧 全集| 炸天小姐在线观看| 我家三爷超宠的全集视频| 黑白配中文高清免费观看| 西装暴徒| 电视剧金牌律师| 替嫁公主短剧全集| 爱的勘探法| 魔角侦探| 西华县| 鬼灭之刃游郭篇| 朋友的姐姐4线观高清2电影| 非常有喜电视剧全集| 情爱天空| 江西卫视经典传奇| 张旸 菊花台| 巜放荡的小峓子伦理在线观看| 极乐电影网| 太阳星辰粤语免费观看网站| 天生一对2| JIZZ.日本| 大江大河电视剧免费观看全集完整版 | 被辟谣猥亵女童蛋糕店主已起诉| 新楚留香任贤齐版| 日本战狼6免费版| 欢乐之都| 朋友的妈妈在线观看完整版| 小唐横情史| 大染坊续| 监狱女孩| 神医安道全| 芭娜娜现场| 印度电影免费观看| 玉女心经3在线观看完整版免费版电视| 全职高手电视剧免费播放| 特种兵火凤凰63全集| 使徒行者3在线观看| 女状元:文武双全惊天下全集免费| 牧化师4污染的讲台在线观看| 陈玉莲 连体完整版| 好姑娘8集高清免费播放在线观看| 马永贞之英雄血国语| 《激战丛林》意大利版在线观看中文| 齉龘齉齾爩麤龗灪龖厵纞虋| 继父在线观看| 荒岛女特工满天星免费观看| 婚战电视剧全集在线观看| 一块五花肉错位关系| 将界2第5酒店真人| 王国第一季在线观看| 松药店的儿子们54集| aj视频电视剧大全| 石家庄园博园地址| 血战金沙滩| 爱情回来了20| 了不起的女孩免费观看| 长安的荔枝免费播放| 多情成仁高清影视| 淫荡少妇按摩电影| 粗大的内捧猛烈进出老师下载| 美国队长3迅雷| xl司令第二季第八集免费观看| 风云雄霸天下1.5| 张嘉译电视剧大全最新| 凯帕克康体水疗电影在线观看| 《修理工的绝遇》拉昔| 军棋玩法| 美国1985小辣椒3正版| 吉星高照2015粤语| 许你浮生若梦电视剧全集免费观看| 《激战丛林》罗莎卡拉在线观看| 《超体2:物质觉醒》在线观看| 漂亮的妈妈7中字开头7个字!| 地道战电影免费观看| 刑讯女烈| 娼年完整电影免费观看| 一路繁花综艺| 女武神的终末动漫在线观看| 地心历险记2神秘岛在线观看| 善良的嫂子3在线播放| 电影野兰花| 天生反骨| 未删减版瓜达卢佩的玫瑰在线观看免费 | 电影《需要爸爸播种美国》在线观看 | 私人的女性监狱| 薛平贵与王宝钏42| 喷出巨量精子系列在线观看| 《和部长出差的日子》| 爱人体网| 地铁迷情| 无法无天满天星完整版| 胜者为王3王者之战| 灭火宝贝法版免费法国满天星| 成人版泰坦尼克号叫什么名字| 镜月如歌全集免费观看| 一段难一段难以启齿的感情| 李丽珍开心鬼| 与部长出差旅行日本电影叫什么| 防控措施要更有温度| 泰剧丘比特之路| 满天星在线高清电影免费看| 杨思敏1一5集国语版在线看免费| 电视剧大清风云| 正在播放: JUQ-150 五日无夫,命禁欲至初一夜。不想要的政治联姻,岳父的目标是 | 农场保卫战完整版免费观看| 肉蒲剧蒲剧| 八妻子视频观看| 在异世界迷宫开后宫动漫在线观看| 唐璜的回忆| 蛇姬恋电影完整版免费观看 | 我唾弃你的坟墓1| 千年迷局| xl司令第一季免费观看全集| 孕妇滴着奶水做着爱A| 宇宙英雄奥特曼全集| 杨敏1—5集电视剧最新更新| 亲吻姐姐下载| 我在他乡挺好| 铁血少年| 三年连续剧全集免费观看| 《劫匪面前无能的丈夫》| 紧扣的星星全集完整| 沉静如海| 女儿的奶水| 和最讨厌的社长出差日本电影| 这就是生活电视剧| 韩国大学生创业沙龙2| 电影外出2| 战狼6真人片版| 爱的代价 原唱| 搞笑一家人国语版1| 女员工的滋味2| ylacoyote女超人| 北京地铁电视剧| 迪迦奥特曼1| 苍老师电影| 高清《阿诺拉》电影| 《满秋》电视剧| 法国空乘2016未删减| 天地神剑电视剧在线观看| 激战丛林意大利1995完整电影版在线 | 韩国伦理电影下载| 涩涩屋免费观看全| 十项舞蹈全集观看| 阿部夏树电影免费观看正片| 某种物质电影免费观看整版| 《社长夫人》天使萌剧免费观看| 持家超厉害:古代种田短剧全集| 玉田县| 杀戮天使第一季全集免费观看| 快乐美美向前冲 0627| 破刃电视剧全集免费观看| 潜伏全集百度影音| 闺蜜的朋友3线观高清| 黄金瞳56集免费看完整版| 我们的父辈中文完整版免费观看| 如果声音记得你短剧免费观看| 双人调情按摩术下载| 月光王子| 销售的秘密| 弃妇逆袭短剧全集| 小欢喜电视剧完整版免费观看| 鹰眼黑寡妇| 警花交换| 欲百度影音| 兄弟老婆3全集免费观看| 《准儿媳》在线观看完整版免费| 瑞安市| 一笑随歌40集全免费播放| 丁度电影种马猎人完整版| 爱情与灵药在线观看| 爸爸给我播种子免费观看电视剧| 小生怕怕2008| 什么是常任理事国| 折腰电视剧免费观看| 官方:严禁用日本水产品制作餐食| 无忧天堂| 公交车在线观看电视剧| 《令人心动的房东小姐》动漫全集 | 杉杉来了电视剧全集免费| 知否应是绿肥红瘦| 爱欲狂潮电影| XL司令动漫全集| 华为见非凡品牌盛典| 夺帅电影| 壮志凌云满天星无删减版| 屠城血证| 曹达华电影| 笑傲江湖第一季| 《空中小姐》凯登克罗斯在第几集| 前门情思大碗茶原唱| 凝香劫电视剧40集免费观看| 秋霞在线观看,售楼小姐的密秘| 学姐知道 电视剧| 聊斋之千年灵狐三姐妹| 陈星旭主演的电视剧| 隐身帽| 韩国莫比乌斯| 隐身女侠的电影免费观看| 金瓶梅1一5集高清视频手机免费| 三个少妇按摩记在线播放| 李娜的歌曲| 迈克杰克逊歌曲| 高庄监狱在线观看网址| 你终于做了别人的小三| 未来影院手机版在线播放版| 红娘子电视剧全集免费| 篠田优电梯被困086在线观看| 电视连续剧甄嬛传免费高清观看| 离婚合同| 维修工的艳遇韩国电影| 刘国梁刘国栋刘国正的关系| 奥特之父的哥哥| 一路走来一路读| 女刑警满天星电影免费观看| 普法栏目剧回家6| 少林足球 电影| 《裸乳按摩》在线| 山海情全剧免费观看| 点燃我温暖你电视剧在线| 灵域电视剧免费观看| 瓜达卢佩的玫瑰2| 原则电视剧| 高清《六姊妹》全集免费播放| 陪你到世界之巅免费观看全集| 女版战狼7免费播放888| 安庆二模| 怪奇物语第三季在线观看完整版| 妙手房术2在线观看免费第5集 | 男女一起愁愁愁免费观看全集高清完整版动漫 | 中央台2024开学第一课| 小时代1电影在线观看| 法国女超人电影版在线| 爹地追来了短剧全集| 万古仙穹动漫第二季| 需要爸爸| 新电影2013上映| 坏家伙们电影| 他的爱情浅| 邵氏《金莲外传》中文在线观看 | 灰姑娘动画片| 斗罗大陆119集免费观看| 黑白诀电视剧40集全部播放| 逆境追凶电视剧免费观看完整版| 斗罗大陆198免费完整观看| 超级调教| 我在90分钟cut截了一段| 粉红大白菜国语版| 猎罪图鉴| 我有爱人了韩剧免费观看| 满天星麦乐迪| 爱如潮涌电视剧| 铿锵免费观看在线播放| 神探夏洛克 电影| 雾都猎狐| 入戏 曹格| Overflower第一季无码| 圣斗士星矢冥界篇| 八百壮士在线观看| 酋长之女2:狂飙2| 魔岩三杰上海演唱会| 家有儿女第四部| 蝴蝶效应2| 团地妻qvod| 江南1970| 那曲在线| 初恋是CV大神电视剧| 新金平瓶梅| 《红杏出墙记》| 圣特罗佩的姑娘们免费播放| 谍战剧《触不可及》免费观看| 惊声尖笑5下载| 特殊精油按摩3| 怒火重案在线观看免费完整版| 金钱之味快播| 特派外卖员| 报告老板之豪言壮旅04| 《法国空8》完整版| 聊斋艳谭之玉女聊斋 在线观看| 哈利波特1~8集免费观看完整版| 福宝团宠:农家日常短剧全集| 红辣椒3| 赊刀人电影| 《交换夫婦》木下凛凛子在线播放| 爱情的牙齿在线观看| 爱我几何电影完整版在线| 贤妻良母全集| 安道尔大公| 第一滴血6全集免费完整| 无双短剧完整版免费播放| 《被下药强辱的妻子》在线观看| 大药坊剧情介绍| 《女巫》满天星| 老男孩美版观看完整版在线| 女医生电影在线完整免费观看 | 美容院特殊待遇1| 定风波免费观看全集高清| 和部长出差的日子| 《藏在婚纱里的秘密》| 总裁夫人来自农村短剧免费观看| 唐宫美人天下| 月升沧海电视剧| 越南战争片满天星| 美国式禁忌4百度影音 | 叶问 粤语| 冰雪尖刀连电视剧免费| 豪放大兵1999电视剧免费观看全集意大 | 十五岁半| 失落魔法电影在线观看| 岳理厨房伦片在线播放| 《康熙王朝》大结局| 私密按摩师电影免费完整版| 喜羊羊与灰太狼之决战次时代59| 我曾侍候过英国国王 | 《大度》韩世雅和谁在一起了| 追虎擒龙电影| 私密肥大| 圣贤教育改变命运全集下载| 丰胸沙龙治疗3| 与部长出差免费观看| 难哄电视剧观看全集在线播放| 人体蜈蚣| 连江县| 蛇姬恋电影在线观看| 地下法庭完整版在线观看影片| 看不见影子电视剧免费观看| 诡故事第一季| 她被搬运工侵犯在线观看| 家庭高级课程| 98古惑仔在线观看粤语版| 爷俩共女人H文| 总统夫人的夜晚在线观看全集| 女孩1小时接10个客| 夺命巨鲨| 与敌同行国语| 掌中之物西班牙版| 到了三十岁还是处似乎会变成魔法师| 女士的品格电视剧星辰影院| 快乐再出发综艺| 《年经继拇2》 | 《品味人生》在线观看完整版高清| 独行杀手| 随唐演义 全集| 成何体统第二季| 《总统夫人》星克莱尔1997年满天星在 | 恋爱超男女| 姑娘第8集免费高清完整版| 异世界迷宫2免费观看| 洪熙官 甄子丹| 神奇燕尾服| 屠场呕吐娃娃免费高清观看完整版 | 当我飞奔向你在线观看| 《女同学的滋味2在线观看》剧情1080P最新全集观看 -全集偶像剧 -黑蚂蚁影院 | 樱桃电视剧高清在线观看| 33d蜜桃成熟时| 站着再来一次26集内容是什么| 变形金刚3下载地址| 西游降魔篇票价| 辱华dg| 银瓶梅电视剧全集免费观看| 朴亚珍电影HD| 因为爱情有晴天国语| 终极三国土豆网| 梦幻诛仙电影| 韩国维修工的艳遇| 全职猎人 99| 我在北京挺好的剧情| 爱的多米诺| 理发店里的特殊待遇,美容室特殊服务1中字| 功夫道电影| 落落历险记| 空姐妻子的秘密第三季| 桃花坞第一季免费观看完整版综艺| 电视剧亲情保卫战| 檩木子电影在线播放免费版| 落花时节又逢君电视| 高清《天气之子》电影免费看| 陷阱致命诱惑大叔| 30插曲免费高清在线观看完整版国语 | 已满十八免费观看高清电视剧| 麻花传剧夏晴子高清下载百度网盘| 非常小特务3国语版| 最热门电视剧| 离岛特警国语免费观看全集普通话| 麦乐蒂马克思满天星| 少女大人第一集免费观看| 蔡卓妍删减42分钟电影上映| 电视剧民工全集| 女保镖丽萨满天星| 电视剧十天十夜| 危险动物未删减| 黑狐电视剧全集| 卖房子的女销售完整版| 美国娃娃脸4国语免费观看| 电视剧50玫瑰| 《误杀3》免费完整版在线播放| 食物链12大尺寸| 欲百度影音| 便利店少女2高清版| 俄罗斯hd| 丈姆娘来了全集| 美乃雀在线| 年轻时的妈妈| 九流霸主高清免费观看全集电视剧| 百战天龙| 宇都宫しをん| 女员工的付出中文字幕| 同乐会 台剧| 善良的女儿| 一本正经电视剧免费观看完整版| 盛唐风流电影在线观看|电影免费高清| 星座不求人| 青春荷尔蒙电影2| 高清《判处勇者刑》电视剧 | 天龙高清远古电视剧在线观看| 白蛇传说粤语| HD版《激战丛林》完整版播放| 柔铺团之极宝乐鉴宝鉴国语| 家有仙妻电影| 行尸走肉第一季百度影音| 医院特殊待遇5中文版免费阅读| 杠上开花 电影| 聊斋艳谭第3集| 任达华舞男| 花子vs倔强驱魔师动漫完整版| 韩国仙女屋| 我在他乡挺好的更新时间| 东北警察故事2谢苗| 3D动漫18MMD在线观看| 黑白配中文版全集在线观看免费| 囧的呼唤101| 电视剧富贵| 电影荣誉守则在线观看 | 梅花红桃电视剧免费观看完整版| 枭起青壤免费观看| 樱井夕树| 维修人员的培训 中字| 电影《姐妹牙医》完整版免费播放| 苹果电影片| 笑红颜 电视剧| 色戒 电影 未删减在线观看| lx司令动漫第一季免费观看| 识夜描银| 白日美人满天星免费播放| 龚玥菲新金瓶高清什么时候上映| 世间路电视剧| 美容院:特殊待遇3| 林风短剧免费全集播放| 星克莱尔在线观看| 八佰在线观看完整版免费| 夜来香电影在线看| 托里县| 我的妈妈免费完整高清电视剧 | 阳光快车道| 女律师的坠落在线观看| 扒灰漂亮儿媳妇| 《极度召唤》| 战狼6欧式少女高清观看| 妓院十二房| 局长从后面握住我的奶| 真倚天屠龙记修改器| 《美容院:特殊待遇》完整版| 粘豆包电视剧| 东北黑道风云20年全集| 花房姑娘做爱视屏| 琉璃免费观看电视剧西瓜| 双胞胎伊莲| 杰克影院满天星免费观看方法| 我的罪恶人生在线观看| 热情的邻居完整版免费| 康熙王朝一共多少集| 特殊家政服务电视剧在线观看 | 从后面插曲高清视频免费观看| 丁巴度电影在线看| 东京猫猫| 值得爱电影免费播放在线观看 | 东北往事之黑道风云全集| 日韩电影维修工的艳遇| 杨乃武与小白菜电视剧| 长歌行在线观看免费| 《斗罗大陆》.免费观看| 新金平瓶梅2| 美丽小的瘦子4| 法国版《女超人:麦乐迪》 在线观看| 仙逆86| 搜索在线观看| 花咒电影| 人猿泰山意大利1995时长1小时34分,英文| 学渣学霸:高考状元全集免费| 来了在线观看| 烈火青春19| 豚鼠系列在线观看| 男女愁愁愁在线观看| 杀戮天使第二季| 情挑山庄| 大江大河第二部全集免费观看 | 李恩美热水器维修工电影名字 | 荒岛女儿国| 爱情公寓 第3季| 98古惑仔在线观看粤语版| 普法栏目剧听见凉山6| 龙哥游戏库| 精油按摩和老公隔了一个帘子| 湄洲岛奇缘| 《轩辕剑之天之痕》| 女超人麦乐迪无删减版完整版电影 | 孤零飘落燕| 凯旋在子夜电影完整版在线观看| 《在你被判死刑之前》| 玄好心经19| 伊波拉病毒国语在线观看| 帝皇侠电影| 高清《她唇之下》电影| 郑嘉颖最新电视剧| 布兰迪洛夫电影《军事不当行为》英 | 国家保藏| 锵锵锵锵锵锵锵锵免费观看电视| 雾蓝色的雨后晴天| 渔夫荒野史记| 燃冬电视剧在线观看完整版免费| 开车看美女被开罚单?P的| 新金银悔1-5普通话一| 《妻子7》在线观看免费版电视剧 暖暖在线观看免费全集高清完整版 | 中国教育考试网官网登录入口| 大运会运动员踏着蜀锦入场| 天堂的眼睛| 法国私人女子监狱| 幸福媳妇成长记结局| 怒水西流 电影| 星克莱尔在线观看| 周防雪子快播| 南线大追歼| 爱我几何《莫妮卡》免费看| 小蜜桃3美丽人生完整版| 熊出没冒险之旅| 韩国电影出轨| 我们都是超能力者完整版电影| 年轻的妈妈韩版带中译| 王向阳书法| 明星大侦探第五季在线观看 | 电视剧战北平| 《越南被俘女兵》| 想你21| 傻哥蹦迪| 我的泪珠儿电视剧| 国家宝藏1高清| 《特殊游泳集体》免费观看下拉式| 玉蒲团3之初入桃源洞| 一言为定的挑战| 电视剧 雪豹| 视频列表--天美 - 17| 全红婵玩上抓娃娃了| 初见乍惊欢| 草灯和灯电影免费观看| 岳母的幸福生活电视剧| 警察故事2| 女空乘满天星1973| 电影急诊护士完整版| 茂盛的森林电影在线观看| 奇葩说第六季在线观看| 阿凡达3d版在线观看| 至尊红颜武媚娘| 兔子先生第一季第6期在线观看免费 | 人世间在线观看免费完整版高清| 青柠剧情电影免费观看全集| 韩国火热的邻居| 睫毛膏4美国版| 一个小山村的故事| 摩登家庭第二季在线| 破冰行动电视剧48集免费播放| damimi| 蒋玲玲版渔夫的荒野史记 | 黑雾 电视剧| 日本理伦年轻的妻子| 德保县| 满天星女超人麦乐迪在线看 | 高达seed重制版| 四大名捕1(国语版)| 超速绯闻短剧在线观看免费完整版| 《无憾》满天星| 公之浮手中字15| 《拥挤的电梯》免费观看全集| 大头儿子小头爸爸1| 青春期电影完整版| 伴换5| 在线观看日本电影《和讨厌的部长出差旅》 | 电视连续剧暗战| 高清《地狱来的芳邻》电视剧| 三个傻子| 斯巴达第四季无删减在线看| 插曲的痛免费播放电影| 高清《开始捉迷藏 第二季》 | 麦乐迪《家庭矛盾》满天星在线播放| 美丽的她| 行尸走肉第二季剧情| 恋恋维纳斯泰剧| 日本人已经不吃海鲜了| 《二十一世纪爱情指南》免费观看俄| 售楼小姐日本| 王龙妻子称要把慰问金都给公婆 | 失笑电视剧| 高压监狱1小时43分| 生而为狗| 黄晓明安以轩| 美国1985G点中文版| 香奈儿版满天星古墓丽影| 玉蒲团 叶子楣| 敢死队高清| 外星生命| 人民的名义 直播| 年轻丰满的继牳3伦A片201| 金三角风云| 兄弟的女人 电影| 亚伯风尘| 金刚归来1| 田林县| 《裸乳按摩》在线免费观看| 林凡短剧免费观看全集| 最近我的妹妹有点怪电影| 女员工5| 《幸福 触手可及!》电视剧| 卡特教练| 新还珠格格第二集| 韩国娜塔莉| 加勒比女海盗1在线观看| 迷失东京| 跑男第九季| 交换上司的秘书3| 绅士杰克| 倪萍发文感谢蔡磊夫妇| 战争暴行女兵HD版电影播放| 高清密屋陌路| 刘罗锅电视剧| 有个地方只有我们知道| 灭火行动在线观看免费| 不惑之旅| 爱玩具的大成| 《无法抗拒的温柔》大结局| 维克托 科瓦茨| 法国版《女超人:麦乐迪》满天星| 冲上云霄第一部粤语| 电视剧大侠霍元甲全集免费播放| 西游记续集16集免费观看| 丈夫出差的三天,被讨厌的| 让子弹飞电影| 唐朝诡事录电视剧免费观看完整版| 疯狂粉丝王下载| 日本电影漂亮的售楼小姐完整版| 李斌回应撞脸黑神话悟空金池长老| 岁月的童话影评| 爱情诡计第8集| 《极乐宝鉴》2徐少强| 酒店激战3| 东京复仇者动漫二季免费观看| 许嵩素颜mv| 给我豹豹迷羊| 金瓶梅电影5完整版无删减| 少年派1电视剧全集免费观看| 最新tvb电视剧| 《花子vs倔强驱魔师》| 夺子战争全集| 汤唯现身烧烤店 店主狂喜| 弱小的英雄第二季| 女版战狼6免费观看高清下载| 电视剧铁血壮士全集| 评书杨家将刘兰芳| 从宫本到你在线观看| 壮志凌云(法国版)2011| 爱国让你想起什么| 欢迎光临全集免费观看| 电影金银梅| 鼓楼外42集大结局| 还珠格格第一部1一24集| 电影《青蛇》在线观看| 唐伯虎vlog免费观看全集1446| 职业猎人| 唐诗三百首一共有多少首诗| 坎贝奇《品味人生无憾》完整品味人 | 两个母亲电影ID| 风筝电视剧| 罗曼蒂克地下室骑马多少分钟| 生死线电视剧全集免费观看完整版| 终极一班4全部20集| 《高压监狱2》完整免费| 电影《蛇妖1988》空姐满天星在线观看 | 纵有疾风起一共多少集| 莫陌2微电影完整版| 我最好朋友的女朋友| 我家有喜44| 《惊变28年》| 怎样让小腿变细| 美第奇家族 美剧| 女超人法国| 《温度爱情》免费资源下载| 芈月传电视剧全集在线观看| 蜂脸女人| 西游降魔电影完整版| 异世界圣机师物语| 花木兰刘亦菲版电影版| 站着再来一次第6集全集观看 | 怎样自制直接吃的奶油|