1. 圣石小子粤语,别样幸福全集,箭在弦上大结局,我想打死你,星光灿烂猪八戒,菲律宾美人鱼50集国语,神探夏洛克 第四季,市委书记晚上不打招呼调研被拦

      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

      主站蜘蛛池模板: 出差被迫和讨厌部长| 中国国防生在线观看| 有罪之身| 电视剧铁在烧| 嫦娥六号在台湾火了| 乡村爱情14 电视剧| 陪讨厌部长去出差旅日本在线观看| 是真爱还是希望泰剧在线观看| 黛博拉满天星三部曲| 我和大佬的三百六十五天| 《赘婿》免费完整版在线观看西瓜 | 木乃伊2百度影音| 五通神魔| 凶手的样子电视剧免费观看 | 《我的游泳女教练》在线观看| 暮光之城女主克里斯汀| 高清火烧天堂镇未删减| 爱我几何原版无删减版在线观看 | 审判四人帮| 需要爸爸的种子2| 欲望中的女人在线观看无删减| 亲爱的妈妈3在线观看| 姐姐妹妹闯北京| 高压监狱全集在线观看完整| 坎贝奇品味人生完整的| 危情实录第二部电视剧| 电视剧王小麦进城| 如懿传3在线看全集免费观看高清 后宫 | 《爸爸种子2》电影| 三级剧情片| 我在伊丽莎白截取了一个小片段 | 死神480| 电视剧软弱全集免费观看| 春风物语6| 姜素拉一脱成名2免费观看| 东方红太阳升简谱| 台湾版《荒野渔夫》电影在线观看 | 免费拗女稀缺资源观看| 超级调教| 美丽乡村浪漫事| 巨茎挺进李淑芬的体内视频 | 她被搬运工侵犯未删减版在线播放 | 东京塔之越南女兵俘虏营免费完整在 | 《女销售员的销售秘密》签合同 | 妻子的秘密 韩国电视剧| 女朋友63中汉字| 百日郎君| 需要爸爸播种子在线观看| 智取威虎山电影| 电视剧白日梦我在线观看| 战狼6免费观看在线播放完整版视频软件下载 | 《湿透雨宿避雨》电影完整版| 今人不见古时玥| 母亲爱上儿子同学的美剧格伦片名叫| 芭芭拉保罗3大结局| 美国狙击手迅雷下载| 金瓶双艳2| 金毛动漫库| xl司令动漫第一季全集在线看免费版| 五通魔神三狐仙原版无删减在线观看 | 豚鼠系列在线观看| 电视剧一代枭雄全集免费观看高清| 聊斋兰若寺在线播放电影免费观看| 苍井空电影观看| 太原理工大学2020录取分数线| 西安市| 我为聊狂| 食味阿远| 瓜达卢佩的玫瑰免费在线观看| 隐私欲望| 因为爱情有多美下载| 高清《为了皇帝》| 韩国《女员工的滋味》在线观看| 中文字Dl幕岳 和女胥友田在线| 善良的嫂子2中文| 信天游电影| 空中营救| 笑红颜 电视剧| 按摩店的特殊待遇在线观看| 《寒武纪》电视剧| 七情六欲韩国版| 束傅游戏免费观看第一季全集| 灯草和尚电影下载| 战狼6国语版高清下载| 长歌行免费观看完整版| metarthunter| 《女超人麦乐迪》完整版| 《孽欲狐仙》在线观看| 王在山轻音乐团| 女装正太01| 梁以沫冷夜沉免费阅读| 回复术士118集真人版剧情介绍| yy11111光电影院| 韩剧太阳深处| 满天星版超女麦乐迪片段| 《以法之名》全集1_36| 莫莉特别的酒店| 小妖精干了这么久还这么多水| 迪迦奥特曼国语全集高清| 奔跑吧兄弟20141226| 成都片免费观看| 《小麦进城》免费看| 1995年意大利版《人猿泰山》罗莎未删 | 富裕县| 韩剧说不出的爱| 女教师波多野结衣在线播放| 维修工人的绝遇2中文版| 桑田佳佑| 葫芦娃成版人每天看一次| 品味人生无憾在线观看| 他年她日电影| 瓜达卢佩玫瑰原版免费观看| 还珠格格第一部旧版全集| 人鱼小姐全集| 女销售成功的秘诀2中字| 君心藏不住电视剧| 果盘先生| 沼泽猎手11| 一品大天师短剧免费观看| 男人和女人一起愁愁愁愁电视剧免费观看 | 面具安七炫| 《亚当与夏娃》| 母亲爱上儿子同学中文电影| 巨乳学院| 天上掉下猪八戒| 飞虎出征字幕| 高清我要成为超级巨星| 色戒完整版| 我喜欢你全集在线观看免费| 太阳阶梯| 兽性新人类在线观看| 特邀外卖员韩国电影| 年轻人 高清在线观看| 播九公社在线观看| 剑侠电视剧| 渔夫的老婆赛仑免费观看| 网球王子电视剧版| 泽库县| 杜汶泽3d豪情| 白化农场| 《法国空姐2020法版》中文版| 欢天喜地七公主| 免费看电视剧漂白| 农民伯伯下乡记| 王朝的女人| 能看硬的舞蹈| 超级校长| 瞄准全集免费观看| 白峰美羽| 《僵尸先生2》免费观看| 被甩继承:亿万家产短剧全集| 今夜无人入睡观看完整版| 柯南剧场版18| 风声电视剧免费完整版观看| 人猿泰山hr版1995无删减在线完整| 琉璃电视剧全集在线观看正版| 一生一世电影完整版| 最后的大魔王6| 寒山令电视剧全集| 麦乐迪版女超人| 年轻的母亲5在线| 脱口秀演员李昊石被警方立案调查| 倔强驱魔师动漫完整版| 龙年图片壁纸| 惊天危机2完整免费| 《初恋时间》动漫5-6集| 情色姐妹| 澄城县| 高清忒弥斯的不确定法庭未删减| 电影《金钱和我》国语版| 安娜1980满天星英文| 电视剧娘心| 追鱼传奇爱奇艺| 韩剧妈妈爱上儿子| 猎罪图鉴电视剧全集免费观看| 电影《血恋》完整版| 义姐是不是良在哪里看| 墨白电视剧免费观看在线观看超清| 变形金刚 1| 万法归一| 再见18班在线观看免费版| 《同学聚会》日剧| 欧式少女16集全观看战狼6国产少女| 人民的正义 电视剧| 疯狂二人房间原声免费听| 祝你好运在线观看完整版电影| 郝板栗黑丝袜诱惑人的电影| 斗破苍穹171在线观看| 高清《表妹2》电视剧| 子夜归电视剧免费观看高清| 游山西村的诗意| 苏文茂相声| 李贞贤阿里阿里高清| 瓜达卢佩的玫瑰| 阿修罗之怒主题曲| 动感之星小玲236集完整版免费观看下| 监狱风云2逃犯粤语| 激情丛林电影中文版在线播放视频| 开原市| 扫黑风暴26| 我爱hk开心万岁粤语| 金钱帝国粤语版| 哆啦a梦新番全集| 宁安如梦35集| 卖房子的女销售在线观看| 相爱十年全集| 依兰爱情故事在线观看| 战狼9欧式少女在线观看全集高清美国| 漫长的季节电视剧免费观看完整版| 樱井莉亚| 碧血青天杨家将| 和部长一起出差韩国电影| 海贼王480| 激战丛林hd版意大利| 故乡的泥土一共多少集| 比天堂还美丽 电视剧| 需要爸爸播种子电视剧免费观看| 我的世界电影在线观看免费| 公浮3| 乱点鸳鸯谱| 上甘岭40集电视剧| 苍井空电影在线直播| 僵尸道长1| 喜爱夜蒲电影| 好想做一次电视剧完整版| 千古风流人物第三季| 楼下女友请签收免费观看| 团风县| 良辰好景知几何电视剧免费观看| 女版战狼10高清免费看| 我的继母电影| 迷人的小婊子| 高清《老少恋》电影免费观看| 毒医肥尸在线观看高清免费| 超人未删减| 三年中文免费播放观看| 花与蛇 零| 水川堇被义子侵犯无删减在线播放 | 美丽妻子替弟还债剧情| 需要爸爸播种在线观看免费| 孙杨事件暴力抗检| 蜜桃成熟时3之蜜桃仙子 | 如何剥石榴| 托克托县| 大宾的寝室免费在线观看| 好男人手机在线视频播放1| 螺丝钉第三季| 侃爷以为HK是香港结果是海口| 周杰伦的歌东风破| 时尚王中文版| 璀璨人生电视剧全集剧情介绍| 法国4姐| 缘分五月在线看片| omoflow第一季真人 | 小手服的饲养| 八百彪兵奔北坡| 私家车跑滴滴怎么加入| 卖房子的女销售2香港| 李采潭演热情的邻居免费观看| 漂亮妈妈7字头| 兵团岁月电视剧| 古墓丽影法国版女版在线观看| 饮食男女高清免费完整版在线观看| 《极乐宝鉴》在线观看免费版| 麦迪时刻35秒13分高清| 坎贝奇无憾全集码名| 风暴来临在线观看完整版| 特殊诊所| 水月洞天第3部| 《武松》83版免费播放| 仙逆130集完整版观看| 汉末皇叔| 女大学生特殊按摩| 《决战中途岛》完整版| 以家人之名电视剧在线观看免费| 反毒风暴在线观看免费版| 结婚的秘密电视剧免费观看完整版 | 娇妻被黑人夹了三明治| 激战酒店1-80集电视剧免费播放下载| 小虎还乡动画片在线观看| 杨光的夏天| 高清《白夜行》电影完整版在线观看| 伊林格娃八部满天星| 舞出我人生2高清下载| 今夜天使降临电视剧| 水手服的饲养完整版在线播放| 有女不愁嫁| 年轻的儿媳妇字头范文| 3对1三人一次性体检什么电影| 成全世界免费高清观看在线电视剧| 电视剧八旗子弟| 《监狱3》完整版在线播放| 高清了不起的埃莉诺| 土耳其惊艳的MV短片| 陈雅伦曹查理《我为卿痴狂》在哪里 | 东北往事之黑道风云全集| 高清《鸭王》| 《无憾》电影完整版| 我是mt第三季| 永生守卫| 国风按摩院1一6| 某天成为王的女儿| 春雨电视剧高清在线播放| 爱我几何在线观看完整免费| 女人自己扒开荫道口| 永不磨灭的番号电视剧| 酒店实拍1-5集| 步步杀机 电视剧| 高清《猎杀》免费观看| 偷偷降级的火锅 盯上打工人外卖| 花姑娘免费完整版| 大地中文8在线观看免费| 薛平贵王宝钏全集| (姐妹牙医)电影赤子板栗| 国产凌凌漆| 瑜伽起源真的很恶心| ⅹl司第一季在线观看免费| 蒋万安与洪秀柱的关系| 电视剧女人魂| 心战电影百度影音| 四个少妇的精油按摩电影| 乱世枭雄1-60集免费观看| 混合性爱| 天海翼在线视频| 好姑娘真漂亮完整版| 快17电影网| 不当军事行动未删减版| 照明商店电影免费完整版在线观看| 陈百祥电影| 黄秋生电影人肉叉烧包| 四位少妇精油按摩| 我的世界十大恐怖事件| 泰国坠崖孕妇孩子出生了吗| 黃色倉庫在線觀看| 火蓝刀锋2之雄鹰展翅| 以你的心诠释我的爱第二季电视剧| 小辣椒电影在线看免费完整版高清| 一剑横空| 女儿的奶水| 隐形战队电视剧免费观看国语| 罗丽星克莱尔迷宫HD版免费观看| 珠帘玉幕在线免费观看| 那金花和她的女婿| 水手服饰育完整版| 釜山行2在线观看| 爱情盛宴| 七台河市| 日本影片爱上儿子同学| 天使即将来临续集| 与鸭共舞| 疯狂房间荷尔蒙爆发原声| 汽车旅馆完整版在线观看中文字幕| 敢梦有爱| 美式1984美式保罗1| 爰你电视剧免费观看| 明星有戏寻找唢呐王| 《危险动物》| 巨乳按摩电影| 中国海军击溃海盗| 天下第一大结局| 劳拉的遗产满天星版| 蒋丽萍故乡情| 寻龙传说免费观看完整版中文| 好好的时光| 正在播放: 解决学生的性爱烦恼不穿内衣裤的美波老师硬硬教学 _美波汐里 - 91n | 盛唐风流电影在线观看高清国语影视 | 蜜桃成熟时33d在线线免费观看| 大胸按摩电影| 神之一手| 五一趣事作文| 泡芙小姐的金鱼缸| 《继牳3理伦片》在线| 魔兽世界封停超4万开挂账户| 纸醉金迷电视剧下载| 《天降之物》阿部夏树免费观看| 《善良背后》大结局| 大江大河第二部全集免费观看| 灼热的爱丽丝第一季四集免费观看| 爱丫爱丫免费国语高清电视剧| 盗梦空间qvod| 武契奇收到死亡威胁| 戏台电影陈佩斯抢先版免费看| 《xl司令》在线观看完整版动漫| 快递员驯服妻子中字| 守候我们的幸福| 赘婿电视剧全集免费观看| 男按摩师做乳房按摩电影中文| 美国保罗一家第1—4集在线播放| 缘分的天空| 电竞冠军:少女带队全集免费| 奸魔者| 因法之名电视剧免费观看吴磊| 八百彪兵奔北坡| 龙摄天下土耳其摄影作品| 美国电影村妓| 电视剧保姆与保安| 上海滩黄晓明版| 天美乡村影院免费观看电视剧| 仙逆动漫76集| 电视剧樱桃| 监禁逃亡中文电影在线播放| 莺长的女儿电影结局是什么| 龚玥菲新金平瓶梅全集| 花样年华电影未删减完整版| 向井蓝之特殊治疗医护最新消息| 斗罗大陆1080全集免费观看| 逆袭的第二名| 我的幸福婚姻| 美容院的待遇在线| 我是女王 电影| 冬至电视剧全集免费观看完整版高清 | 决战江南全集| 修理人员的培训日本| 张绍刚撒贝宁| 堕落的女律师在线观看| 电视剧天眼| 哇嘎免费观看在线播放| 马云谈台湾问题| 打脸亲戚:穷亲戚变豪门短剧全集| 《插曲的痛免费观看第二季》中文版 | 人民的名义 42| 法医探案团| 韩国瘦子7| 时尚王国电视剧| 生命缘桐桐| 浪漫满厨播出时间| 女军医满天星资源| 正义联盟扎导版超清在线| 剃须然后捡到女高中生| 女版战狼6全集免费看| 胜女代价2| 时光正好短剧免费完整版| 芳龄十六| 黑白配视频播放免费观看| 夫妻那些事免费播放完整版电视剧| 半甜欲水1V6| 微微一笑很倾城超清版免费观看| 壮志凌云满天星免费看| 怎么折滑翔纸飞机| 庶女逆袭短剧全集| 骊歌行电视剧免费观看| 商务旅行戴帽子的同行免费观看电影| 天地情缘之绝世天魔| 灵与肉完整版免费观看| 妽子丰满妽子HD| 尸气逼人| 沙漠女王1983意大利| 水浒传全集高清| 和讨厌的部长出差旅| 年轻的母轻4在钱| 一拳超人最强之男觉醒| 军检察官多伯曼犬| 老板的女儿满天星版叫什么名字| 极乱家族| 我的危险妻子| 《刑警的日子》电视剧| 私人航空(未删减版)| 电影爱情呼叫转移2| 氪金玩家的3d动漫| 米泉市| 酒店1-80集全集在线观看| 真千金是团宠大佬| 梅西疑似脚踝隆起大包| 水电维修工的绝遇2| 人肉叉烧包之天诛地灭| 独立日 电影| 黑道风云电影免费观看完整版| 朝国年经的继5免费观看中| 《枭起青壤》电视剧| 渔夫的荒野史记七仙免费观看| 黑帮大佬和我365天第二部在线| 穿越小兽:兽夫粘人短剧全集| 波多野结衣 裸体| 里沙村电影免费观看| 世上最美的离别| 湘西诡事电影在线观看| 再见十八班| 丈夫出差的三天,被讨厌的 | 等你回家 宋佳| 北京四少| 三年电影免费大全在线| 胭脂电视剧免费观看| 泰剧在线观看| 高清《杀破狼2》在线播放| 白峰ミウ女教师无删减在线播放 | 台前县| 杨敏思版1-5集电视连续剧| 哑巴千金电视剧| 玩命派对| 《激战丛林》-罗莎·卡拉乔洛免费观| 高压监狱法版免费观看| 漂亮的保姆在线看| 生物模型制作| 玛丽mary满天星| 成都4P雪梨枪在线免费看| 卡贾基 豆瓣| 千王之王2000国语| 借种完整版电影在线观看| 飞虎出征电影| 激战HD| 乌托邦电影| 五台山奇情| 高清《幸福花园》| 黑白配hd1080完整版在| 丰臣兄弟!电视剧| 东凛meyd中文女教师| 玉女情挑| 莫莉3特别的酒店| 完全堕落家族动漫免费观看| 恋夜秀手机视频uc| 日常卿卿| 植敬雯《丛林女超人满天星版》| 迷离时空免费观看| 电视剧《下海》| 高清《宿主》电影| 品味人生在线观看| 恋爱暴君ova2下载| 死亡笔记电影| 名侦探柯南电影版| 义姐是不是良妈妈动漫| 灵机一触什么意思| 玉女心经播放| 爱情有烟火演员表| 奇怪的美容院2的完整演员表| 馒头影院| 古装三圾片| 杨光的夏天| 苍梧县| 《你的指尖扰乱我的心弦》| 监狱学园动漫全集| 《修女的忏悔室》动漫免费看| 钢铁侠三免费观看高清完整版| 金银1-5普通话少女潘| 莫斯科恐袭嫌犯坐轮椅出庭 | 男人女人一起愁愁愁电视剧免费观看| 皇家一号娱乐| 深海利剑电视剧| 金玉满堂电视剧| 蒋玲玲版渔夫的荒野史记蒋玲玲的一| 打金枝全场| 陆贞传奇在线观看免费全集高清| 完美妈妈| 需要爸爸播的种子| 引郎入室| 维修工人的绝遇2中文版免费观看 美味快递员特殊待遇免费版 | 二十一世纪爱指南完整版| 败犬女主太多了动漫免费观看| 傲剑至尊国语| 轻佻寡妇电影完整版| 高压监狱在线观看完整免费高清原声满天星2019 | 要爸爸播种| 《水野朝阳之出差电影 | 也平凡1-45集免费观看| 好想告诉你2动漫| 时尚王中文版| 三级维修工的艳遇| 德国空乘4正片| 美国加州爆发大规模街头斗殴| 深海利剑演员表| 魔力宝贝监狱未减版| 冲上云霄第一部粤语| 延禧攻略70集免费播放| 我与婶婶| 私人女性监狱美国版女主是谁扮演的 | 荣华令全集免费观看| 电视剧新娘| 美景之屋6电视剧免费观看全集在线高清| 大江大河2一共多少集| 黄日华版天龙八部| 庆余年2季全集电视剧免费| 正在播放: JUL-520 留下好色的老爹和软弱的妻子 我去了三天两夜的出差... 成 | 我不过是个大罗金仙动漫免费观看| 黑暗的性家伙之工藤拉拉在线观看| 青魇电影| 金银悔1—5hd普通话| 白峰美羽 在线伦理 妻子的诱惑| 太极张三丰李连杰| 故乡的泥土全剧免费观看| 老婆大人1| 吴健版《农民伯伯2》电影免费观看http | 霹雳娇娃2百度影音| 百家讲坛项羽| 《女仆的秘密》大结局| 《荣誉守则》在线观看法国| xl司令动漫第一季无码| 神经侠侣粤语| 卡特教练| 好男人在线观看完整版| 余罪第100集日韩版第9集什么时候开播 | 在异世界迷宫开宫口樱花| 卖房子的女销售2| 《法国空乘3》在线观看免费赛尔航空| 武装特警电视剧| 鬼子进村终结版| 高清贝尔法斯特天堂路| 哇嘎国语电影| 养女大结局| 电视剧幸福的眼泪| 一梦枕星河电视剧免费观看| 电视剧小菊的秋天| 朝国继拇中字| 快乐公媳1-36集免费观看截说| 黑夜中的她短剧免费观看| 混血儿的摇篮曲| 法国足球宝贝在线观看| 影音先锋在线观看中文字幕| 新金梅瓶2 国语完整版| 酷优电影| 哇嘎在线免费观看| 黑皮辣妹在线观看| 戴拿奥特曼在线观看| 女律师的堕落在线观看| 女生万岁| 百万人推理| 唐人街探案2免费观看高清版电影| 牙医姐姐电影完整版| 左耳电影在线观看免费| 地米菜煮鸡蛋的功效与作用| 鲁邦三世特别公映版| 我的姐姐免费观看完整版电视剧| jackerman在线观看| 万惠文妻子孙丹丹简历| 西班牙电影掌中之物在线播放| 最美时光电视剧| 《游泳教练》免费观看| 斗罗大陆152| 我知道我爱你免费观看| 美版灭火宝贝2监狱在哪里| 需要爸爸播种的视频| 美景之屋2中国版电视剧 | 电视剧食神| 电视剧心跳| 青春荷尔蒙电影2| 《越南暴行2》| 第六感之吻电视剧在线观看| 善良的姐夫| 《奇怪的夜晚》| 高压监狱1小时43分| 年轻的母亲2韩剧免费中文版| 卧底娇娃电视剧| 杜拉拉之似水年华结局| 权力的游戏第7季无删减完整观看| 男按摩师做乳房按摩视频日韩电影| 盲探电影| 古剑奇谭第十集| 急速绯闻| 南海归墟全集在线观看| 公之的浮9| 波多野结衣新片| 盛世宝邸论坛| 吸血鬼女王百度影音| 《渔夫的荒野史记》剧情解析视频| 战狼7下载高清完整版| 爱在独木桥韩剧在线观看| 高清《黑道家族》| 顺义地震| 部长来家里喝酒在线观看免费| 事物的秘密2浴室吃奶的更新时间| 爱的精灵下载| 左宗棠电视剧20集全集免费观看| 电视剧叛逆者全集免费播放| v酒店第一季完整版| 金瓶梅爰的供养电影| 爱情公寓321集| 电视剧天真遇到现实| 泰剧铁石心肠剧情| 总统夫人的夜晚伦理电影1997在线观看| 巜性刑房3捆绑凌虐电影| 黑衣人2高清完整版| 两个妻子剧情介绍| 动漫在线观看免费观看| 大儿媳叫慧珍是什么电影| 《美姐妹努力赤子板栗》| 日剧恋爱补给品| 梁朝伟绝代双骄| 北京青年36| 《x迷宫》罗丽星克莱尔主演| 波斯拉病毒| 白马少年| 火柴女孩| 十二罗汉迅雷下载| 农村版《村姑》| 米丽娅姆莱昂内1993在线观看| 反黑英雄电视剧免费观看国语全集| 电视剧娘家的故事3| 爱无悔之百万新娘| 《示范销售避孕套》剧情介绍| 《落魄贵族流璃川》动漫免费观看| 有朵云像你全集观看| 漂亮妈妈3未删减版免费观看| 传闻中的七公主 电视剧| 古蔺县| 《被隔壁男人侵犯RBD-505》| 侏罗纪4重生在线观看高清免费| 西西里的美丽传说迅雷下载| 澳门风云2免费完整版| 印度一生的承诺| 铿铿锵锵锵免费观看高清| 玉蒲团2玉女心经| 王汝刚生什么病| 相亲第一天就日了她| 神澜奇域无双珠动漫免费观看| 你懂的电影369| 《白鹿原》电影完整版免费观看| 限定婚约| 心理罪电视剧全集| 僵尸道长1高清国语版在线观看| 老婆的同学中字ID| 波多吉野电影。| 谁是凶手电视剧在线免费观看| 至尊无上国语| 泰山电影完整版播放| 陕西省| 高压监狱2019无删减版| 莲花楼电视剧在线观看| 老公原谅我在线| 乔家的儿女36集免费播放| 幻灵先生| 美国禁忌式结局- 5| 杨紫埃菲尔铁塔下跳舞| 解禁男女在线观看| 新版燕子李三电视剧| 动漫在线观看免费观看| 日本维修工的艳遇| 醉酒的玫瑰电影完整版| 秘密花园动漫在线观看完整| 海豚寄宿学园在线观看完整版| 甄嬛传完整版免费观看| 怎么办才好| 需要爸爸播种美国第二季| 东北恋哥电影高清完整免费观看 | 风气洛阳| 年轻母亲2中文字幕| 修理工的艳遇日韩伦理片在线观看| 古装武打电影国语| 可疑美容店| 他母亲的房子| 金星 离婚| 千阳县| 欧美女人ooozzzxxx| 高清《瑜伽教练》无删减| 某年某月某一天| 错撩电视剧| 父亲的战争插曲| 疯狂小女生法国满天星剧情介绍 | 明星大侦探5| 欢乐颂4免费观看全集电视剧完整版| 大染房电视免费观看| 急诊护士电影免费观看完整版| 坎贝奇《品味人生》在线播放| 德川公主| 海贼王剧场版第10弹| 扫黑风暴28集免费看| 盲井电影完整版| 激情从林未删减版免费播放| 美国一级父女播种视频中文版| 张哲瀚许凯同框| 黑蝴蝶刘敏涛免费观看全集| 镜绣安宁电视剧免费观看完整版| 芭比美人鱼历险记国语版| 坎贝奇三部曲《品味人生》免费 | 恨透爱情恨透你| 《卢旺达的玫瑰》| 日韩mmm| 罪孽 泰国| 韩剧《家庭教师》免费观看全集| 周星驰粤语| 天注定 字幕| 商务部暂停天然砂对台湾地区出口| 周二谋杀定律电视剧| 水润女人刘志贤免费| 小凤新婚台湾版哪里能免费看 | 倔强驱魔师1-4集免费动漫在线观看樱 | 雪珂电视剧免费全集在线观看| 酒店服务生在线观看完整免费高清第一集| 部长欺负的一天| 印尼屠杀华人| 剧情电影《姐妹2》正片免费观看| 五十度灰ed2k| 苦恼人的笑电影完整版| 《聊斋之仙根》徐锦江| 和讨厌的部长一起出差日本| 宫锁珠帘27| 潮与虎动漫| 1986《牙医姐妹》在线看| 超危保镖电影完整版免费| 谎言背后电视剧全集| 《社长夫人的美貌》在线观看| 杀死伊芙| 龙年手抄报简单又好看| 一起再看流星雨全集| 人猿泰山意大利| 三日情劫:不嫁已婚总裁| 万里江山入我怀全集| 任达华贼王| 廖学秋潘金莲| 4个混血大学精神按摩视频| 高清《周年纪念日》电影| 灌篮高手大电影免费观看完整版| 进击的巨人大结局| 高清《人间空间时间和人》电影| 濉溪县| 修理工的艳遇三级片| 《隔壁放荡人妻BD高清》在线| 自由的他们电影免费观看全集高清| 弱小的英雄第二季| 河南电视台法制频道今天7:50| 仁化县| 白雪公主成人伦理| 女性瘾者春梦引爆内地影坛| 恶魔阿萨谢尔在召唤你oad| 佛光山早课| 星际蓝多多全集| 公主回来了国语版| 最高爱人诏三上解说| 沧元图动漫在线观看完整版免费| 大头儿子和小头爸爸第一部| 银娇在线| 现在的是哪一个多闻! ?未删减| 哈利波特5在线观看免费完整版高清| 刘老根3在线观看| 听风者电视剧| 明星换脸王鸥的电影免费观看| 美容院特殊待遇在线| 朱塞佩 托纳多雷| 开心超人| 他和她的谎电视剧| 韩剧《魔鬼爸爸》免费观看全集| 《美丽女儿替父亲还债》| 学生妈妈5字id推荐 | 夫妻成长日记在线| 法国婬乱生活4| 继拇再也忍不住了HD| 制暴电影包贝尔免费观看完整版| 美国队长4免费观看完整版| 女士的品格电视剧免费| 超凡蜘蛛侠2在线观看| 唐吉可德| 由森奈奈子领衔主演| 激战酒店1-5集免费播放视频| 李丽珍在线电影全集免费观看| 古装三级片名| 免费完整电影| 横空出世电影| 日剧《和讨厌的前任》高清版中文,第| 维修师傅的艳遇中字| 碟仙诡谭| 台湾甄嬛传| 望月加奈| 电影钢琴教师| 媛崽好困|