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

      主站蜘蛛池模板: 女友的妈妈女主演员是谁| 美味快递电影在线观看| 欢乐颂电视剧| 赘婿电视剧| 战狼6国语高清无广告| 高清《英雄》在线观看完整版 | 西西里的美丽传说高清| 黑暗荣耀第二集3分08秒| 边缘行者免费观看全集高清 | 鸟人战队喷射人| 滦平县| 电影《牙医姊妹》在线播放| 巜禁忌5》A片| 《731部队》电影完整版| 朴诗妍韩国电影| 保姆119全集下载| 战狼8姐弟国语高清免费看 | 女超人精彩片段合集| 八零搞钱:重生宠妻短剧全集| 第一次做aj电视剧 | 日本战狼10电影免费播放国语| 电影独臂刀王| 社长侵犯下属妻子中文版| 《没关系 是爱情啊》电视剧 | 驱魔天师| 千斤肉板栗免费观看| 室内瑜伽2在线播放| 控制女上司在线观看| 西楼儿女原唱| 菲律宾合租电影满天星四星| 特种兵之火凤凰32集| 黑白配hd1080完整版在| 高清《霍去病传奇》| 娃娃脸4完整版在线观看免费| 青岛DJ小可| 年经继坶3大| 电影野兰花| 1—5全集免费| 神犬奇兵演员表全部| 我的辅导老师| 屠宰场娃娃完整版高清播放| 儿女传奇变脸惊情| 保罗一家1-4美国版| 韩剧命中注定我爱你| 战狼6免费观看全集高清版| 禁忌3美国| 黑白配hd1080完整版高清 | 五月深爱网| 爱我的请过来| 《玛丽玛丽》满天星中文| 朋友的妈妈在线观看完整版| 坎贝奇的电影在线观看| 乡村牧师| 美国要爸爸播种2全集免费观看| 甄嬛传53| 《overflower》第一季真人版| 大秦帝国之纵横免费播放| 女超人的屈辱麦乐迪| 我叫刘跃进| 坎贝奇《品味人生无憾》完整版 | 美丽的小樱桃2美剧免费观看全集高清版 | 阿凡达3d版在线观看| 樱桃迅雷下载| 刘三姐电影原版完整免费观看| 《overflower》真人版在线| 郊游 电影| 电视剧 原谅| 美国忌讳1–7| 河北梆子打金枝全剧| 法国版《女超人:麦乐迪》完整版| 护宝狗狗国语| 法国监狱女狱警2003年的电影| 神圣使命2| 日照市| 慢摇现场| 《前度》电影免费观看| 咱们结婚了吧| 水电工的艳遇在线观看| 一枝红杏入墙来| 八仙饭店埃博拉病毒高清| 喋血双雄| 插曲的痛30集全集| 真心英雄电视剧完整版在线观看| 《保险的女销售》| 赵奕欢上位电影全集| 我的23岁女老板免费观看完整版| 淮南2手车| 小岳岳相声| 修车tv| 邻居也疯狂32集完整版免费看| 高清极寒潜袭| 铃木杏里《少年爱》免费听| 下女qvod| 酒店的特殊待遇| 战狼7免费播放观看在线视频| 猪肉换米二嫂| 无颜之月下载| 灰姑娘 2015 电影| 白马少年| 荣都怪谈| 双性受抽搐潮喷调教老师与学生| 棋魂国语版| 茶啊二中电影免费观看完整版高清| 潜伏者电影免费观看| 尼罗河上的惨案豆瓣| 爱在空气中第八集| 大众健美操二级| 宝贝计划免费观看完整版| 电影商务旅行戴绿帽子完整版| 56集电视剧全部免费| 肢体的绣感在线看完整版免费观看 | 再战江湖国语| 星莱克尔最经典电影| 爱神电影| 美国禁忌满天星伦理电影| 人民的名义 42| 需要爸爸播种子电视剧免费观看| 春心荡漾369| 生死决断秋瓷炫几分出场| 玛丽的激情120分钟在线观看| 公之浮手中字5| 女教师白洁张敏玩交换| 玉女心经3阴阳和合剧情介绍| 苍井空rmvb| 隔山有眼2百度影音| 北极电影| 落跑新娘| 《狙击蝴蝶》全集免费| 黄金大劫案 下载| 从认错人开始恋爱日剧在线观看| 电视剧大哥| 天海翼 秘密搜查官在线| 死神千年血战第二季免费观看| 美丽小蜜桃美国| 一拳超人最强之男觉醒| 满天星《V家酒店第2季》BD| 潘粤明版《昆仑神宫》在线播放| 私人医院的特殊待遇2| 弃妇逆袭短剧全集| 庆余年46集资源| 赤警威龙在线观看| 霍比特人1意外之旅| 电视剧水浒传全集| 江湖情电影| 伊波拉2病毒完整国语版免费 | 天海翼播放| 森林狼vs火箭| 法国4姐| 黑丝在线观看| 爱唯侦查DVD| 暮光之城4破晓下集| 泽连斯基拒绝普京提出的和谈建议 | 公之孚之中字50| 刘汉涉黑集团受审| xxxx.69| 有希望的男人无删减版| 换妻换上瘾| 播放喜羊羊与灰太狼| 沧元图51| 疯狂的石头电影| 金星 离婚| 野花电影免费观看完整| 喜爱夜蒲1快播| 克莱尔的觉醒满天星免费观看| 姐姐真漂亮免费观看| 公的浮之手中字主演是谁| 后藤えり子| 特殊的美容院待遇免费| 沈阳现万米丁达尔效应| 蒙面超人铠武| 有效期限爱上你| 复仇之火完整免费观看| 这一生回忆有你就足够dj| 剥茧电视剧免费全集在线观看| 《美丽妻子替弟还债韩国| 乡村爱情9免费观看全集| 《激战丛林》完整版免费观看中文字| 机长短剧| 韩国上司部长来家做客| 许艺昌最新电影《隔壁男孩》| 时宴郑书意电视剧免费观看| 异界动漫| 薛丁山电视剧免费看| 换伴5免费观看完整版| 夏目友人帐第一季ed| 站着再来一次17集全免费播放| 电视连续剧西游记86版全集播放| 三年大片免费观看完整版在线观看| 旋风管家 电视剧| 10000部电影免费观看大全| 斗破苍穹年番47集| 渴望城市演员表| 三年成全观看大全免费| 吸血鬼偶像 电视剧| 美容室的待遇6在线观看| 为歌而赞第二季在哪看| 美国电影需要爸爸播种子高清| 入殓师百度影音| 高清《朋友的妻子》在线观看| 后厨完整版在线观看免费| 张钰 录像| 美国式家庭忌讳| 强奸女护士| 《健美》在线观看免费| 小罗纳尔多过人集锦| 日本巜与上司的商务旅行3 | 俄罗斯伦理片需要爸爸的种子| 高清九条的大罪未删减| 沙龙美容服务| 介子鬼城| 南京市| 咱们结婚吧 25| 八佰免费播放完整版| 云翔电影游| 黑帮大佬和我的365日观看| 钢管捆绑暴菊强奸电影茌钱免费观看 | 瓜达卢佩的玫瑰 墨西哥电视剧| 赈灾晚会| 电影女超人在线观看完整版| 俄影《为何是你》免费观看 | 上海大学生周末兼职| 碟中谍在线观看| xl司令在线免费观看| 沈腾马丽小品《寒舍不寒》| 法国空乘5完整版免费播放| 从结婚开始恋爱1-35集免费观看| 刑警兄弟粤语| 伍六七第5季全集免费观看| 黑帮老大和我的365天第一部 | 色欲情狂| 浴火之路演员表| 聊斋艳谭第3集| 急诊护士电影完整版在线观看| 少狼第一季| 塔日酒店在线观看高清完整版| 笑傲江湖剧情| 却宅男女| 包青天93版全集| 特警力量电视剧在线观看| 牙医姐妹电影免费观看| 在线观看电视剧| 《意大利夫人》| 再说一次我爱你 刘德华| 笑功震武林| 人民的名义全集免费观看| 无遮挡动漫在线观看| 女超人麦乐迪在线看| 皇后进宫| 正在播放: JUL-945 在没有丈夫的平日里,我被打工归来的无与伦比的岳父强奸, | 新加坡战争2011很差导演:彭禺厶主演:金九拉 金利娜 李硕薰 GREE简介:主角Sara | 假面超人全集| 猫之茗全集免费观看第二季| 爱情有烟火演员表| 木下电影电影免费播放| 终结者6:黑暗命运| 台湾原始部落无删减版电视剧| 外出孙艺珍| 林志炫翻唱席琳迪翁| 不良义姐真人版台湾在线观看 | 大考免费观看完整版电视剧| 安娜女子监狱的电影| 《私生活》| 红色利剑电视剧| 家属动漫第一季免费观看完整版| 绝密飞行2| 人猿泰生Hr| 电视剧沉默免费观看完整版| 姐姐6免费完整高清电视剧在线看| 商务囧途| 冲动的惩罚未删减动漫| 漂亮的小姨韩剧免费观看完整版电视剧中文| 年轻保姆1韩国| 粉色大白菜法国原版| 搞基是什么| 年代秀20120622| 荣誉守则(成人版)高清修复1080p,精彩| 我们与驻在先生的700日战争| 《俄版女儿国》满天星在线观看| 反黑路人甲粤语在线观看| 一年恋一天| 学校怪谈| 我邻居的妻子| 三年成全在线观看免费国语| 电梯故障2| 韩剧高清免费版在线播放| 惊艳一枪国语| 原ちとせ| 瓜达卢佩的玫瑰HD| 名侦探柯南国语| 黑色的眼泪,麻生香织完整版哪里可以 | 摄政王妃:掌心娇宠短剧全集| 我怀了你的孩子第7集免费| 青春期的妹妹免费观看电视剧| 《美丽妻子替弟还债韩国| 监狱风云之夜囚| 369你懂的电影| 危险人物粤语| 白鹿原做爰未删减片段| 醉酒强奸电影在线观看| 我们都要好好的45集免费观看| 《极乐宝鉴》2徐少强| 一千零一夜动画| 金瓶梅1-5电视剧| 一杆枪勇闯无底洞2免费观看2023年上映时间表 | 乡6全集| 他和她的谎电视剧| 本乡爱的所有电影| 高圆圆回应网友说她老了| 宴遇永安 电视剧 在线观看 | u9免费看电影| 淘气包马小跳全集| 粉碎机电影| 单身女王| 暴躁老妈1-46集在线观看电视剧| 我的妻子姐姐最经典十首歌曲| 爱闪亮 电视剧| 使徒行者3粤语电视剧| 电影风声未删减版在哪里可以看| 私人助理2法国版电影| 蜜桃成时| 灯光也暗了 音乐低声了| 火星没事电影| 暗算全集| 八尺夫人在线观看| 瑜伽健身3完整版| 归路电视剧免费观看完整版| 日本大学生特殊按摩3免费观看| 那金花和她的女婿电视剧免费观看| 《驯服小峓子》丽卡| 周末情人别爱我| 妙手电视剧| 《背叛老公的社长夫人》最新电影在线观看 -西瓜电影免费播放 -灵蓄影院 | 《恋爱》大结局| 日本动漫《花嫁高柳家》免费观看| 湘北小成| xl司令第一季免费全集在线观看| 阴差阳错换换爱| 宁静拍到了七彩祥云| 推油韩国电影| 女忍者忍法帖2| 我的后半生45剧情介绍| 全金属外壳在线观看完整版免费| 提防小手| 高压监狱在线观看完整免费高清满天星在线| 新闻女王粤语免费观看| 沙月由奈| 魔女2:另一个她在线观看| 电影独臂刀王| 盛唐风流全集免费观看| 赶尸艳谈迅雷下载| 舞男情未了在线观看| 战狼6欧式少女所有视频 | 九歌电影高清版免费观看在线| 月饼来历| 姐姐真漂亮免费观看| 私人航空电影免费观看完整版在线播放| 理想在线| 《桃花落短剧》免费观看| 19岁电影全集免费看| 中华英雄电影免费国语在线观看 | 吾守尔大爷的冰| 杨思敏1一5集国语版电视剧| 极乐空间快播| 美丽的小蜜蜂美国版5娃娃脸| XL司令动漫第一季全集免费无马 | 末班车后胶囊旅馆无遮挡| 疯狂性生话电影免费播放| 魔女宅急便电影| 古墓丽影(法国版)女版在线观看| 漂亮的保姆6高清免费观看| 女王之剑| 特殊的房产销售电影在线观看| 深情眼全集免费完整版| 命中注定我爱你21| 姐妹们你们喜欢快抽还是慢送? | 太子爷出差| 茅山道士之灵异笔记| 电影玩火在线观看完整版| 禁忌6年转一代| 开心超人| 禁止的爱善良的小蝇子| 别墅互换在线观看| 甄嬛传电视剧全集完整版免费观看| 镖客奶奶高清免费观看| 囧的呼唤99| 摸金爵之卧龙诡阵电影| 黄色仓库在线免费观看| 施魔法韩剧免费观看| 偷偷藏不住40集完整版| 我的美女姐姐欧洲。| 郑钦文第三轮比赛直播时间| 权宠电视剧免费观看全集高清| 一出好戏在线观看| 女大学生兼职| 儿子爱上妈妈| 功守道电影| 流星蝴蝶剑联网| 战狼6欧美完整免费观看在线播放版| 偷窥无罪2| 德阳市| 斗罗大陆66集| 椎名由奈在线视频| 1987版《娃娃脸》满天星 | 美容店的特别待遇5中字主演| 箭在弦上 电视剧| 苍井空电影在线直播| 战狼6免费播9999| 叛逆者在线观看完整版电影| 妖艳女王的尿奴 k| 曹查理《浪蝶狂花》电影| 霍爷家的小祖宗甜又野免费阅读| 金银梅5一10普通话9| 阴谋与婚礼| 魔发奇缘动漫| 法国空乘5| 胸前的大兔子蹦了出来作文| 四方来朝的意思| 成熟妇人的下午茶电影| 3d肉蒲电影在线观看| 新大头儿子小头爸爸第二季| 正在播放: ROE-417 在见证女儿幸福的同时……却在婚礼宴席上,被女婿侵犯的母 | 未满十八岁禁入视频网站在线观看| 比天堂还美丽| 金瓶梅李瓶儿| 新版潘金莲电影完整视频播放| 用我的指尖打扰你第一季免费观看全集动漫| 唐朝好男人下载| 新乌龙女校3| 湿润的继拇HD中文泡泡| 现在正在分手中免费全集观看| 大奉打更人免费电视剧免费看| 韩国仙女屋| 帝王计划怪兽遗产电视剧免费观看| 瑞昌市| 《我是余欢水》电视剧| 苏东坡陆毅版| 爆乳理发店特殊服务| 迪加奥特曼国语版全集| 我们与驻在先生的700日战争 | 花房姑娘国语版免费观看高清| 聊斋之流光情劫电影免费观看| 三级片美国男按摩师| 扫黑风暴11集| 卯月麻衣种子| 花千骨电视剧| 张帝问答演唱会| 全集动画片| 爱我就别想太多免费播放电视剧高清| 奇异博士3电影免费观看| 高压监狱HD无删减免费视频| 去同学家拿作业被他弟| 王牌保镖电影| 爱我几何在线观看全集免费播放莫妮| 虎鹤妖师录 电视剧免费观看| 元宵晚会| 酒店1-75集免费观看电视剧中文字 | 鬼吹灯之天星术免费版| 少妇的诱惑电影观看| 落地请开手机1—26集免费| 美乃雀替夫还债完整版| 街头顽童电影| 皇叔的掌心娇:公主别调皮短剧全集| 女刑警满天星电影免费观看| 莲花楼超前点播| 七哥电影网| 维修师傅的遇艳在线观看伦理片| 金瓶酶2全集观看| 民国往事| 《落魄贵族琉璃川》1-4集在线观看 | 家属1到5集第一季第五集免费观看| 浅情人不知电视剧完整版免费观看| 私密按摩师电影在线观看中字 | 我和黑道老大| 战至巅峰第三季2024免费观看| 日剧维修工人上门维修| 各位游客请注意| 恨锁金瓶电视剧观看| 锦衣之下电视剧在线观看全集免费| sw283| 牧神记1—40集免费观看| 嫂子的诱惑3| 野兽们的战争完整版免费在线观看| 抚州市| 冰川时代2| 高达seed重制版| 台版1987渔夫荒野史记在线看| 浴火危城| 高清《大蛇王》在线观看| 宁南县| 郭麒麟新剧《平凡之路》今晚开播| 聊斋志异三| 石渠县| 骷髅13| 边城小子| 黑白配高清完整版免费观看中文版 | 儿歌童谣打电话| 爱情这杯酒谁喝都得醉广场舞| 朴雅珍《隐身帽》全集在线观看| 芭比公主之时尚童话| 大兵侮辱黄家驹| 修理工的培训在线| 心迷宫电影| 生吃电影| 需要爸爸播种子免费在线观看| 电影《爱我几何》无删减完整版| 超级整蛊霸王演员表| 木下檀檩子国语版在线看| 高清《求佛》po| 乱世淫侠| 韩国电影女大学生的诱惑 | 夫妻之间完整版免费韩国电影观看| 碧海青天珍珠旗| 奔跑吧有情人| 3d肉蒲团高清| 麦乐迪和父亲故事电影叫什么 | 黑白配免费视频在线观看| 《九条的大罪》| 电视剧悬崖全集| 蒙古国电影《销售女孩》上映时间 | 3个女学生特殊按摩| 风云1电影| 青春四十在线观看| 《乳头按摩》电影无码| 我朋友的妈妈9完整中字 | 绝密暗号电视剧在线观看免费版高清| 女仆小姐的贪吃日常全集观看| 美容院的特殊待遇| 金瓶梅2在线观看mi| 我们一起来看流星雨| 我要爸爸播种子电影在线观看| 夺命尸杀| 电视剧孤舟免费观看全集高清| 我的荣耀电视剧免费观看| 蜜桃成熟时33d在线观看完成版| 青岛往事全集| 风流小神仙| 四位少妇按摩记在线| 宝贝赳赳第四季动画片全集免费| 电影你好李焕英免费高清在线观看 | 长沙乐和城电影| 斗罗大陆160集在线观看完整版| 李献计历险记下载| 伊波拉病毒2普通话国语| 动物出击电影免费观看国语版| 双子星公主 第一部| 战狼4高清免费999| 激战电视剧全集免费下载高清| 熊熊乐园2| 公之浮之手中字22| 夏日重现动画在线观看| 爱情公寓5第13集| 总之就是非常可爱第二季免费观看| 韩剧拜托了机长| 高清《暗夜情报员 第三季》电视剧 | 奈何流年枉情深短剧免费观看| 夫妻本是林中鸟短剧全集免费观看| 《刺激的瑜伽教练3》 | 韩国剧《爱上闺蜜》| 《私人家教》在线观看| 进击的巨人第二季第四集| 天机算不尽| 《莫妮卡《爱我几何》》高清再线播放| 也平凡在线电视剧免费观看全集| 小明星大跟班| 秋瓷炫《生死决断》| 熊出没之过年免费观看在线完整版| 农场主的女儿们 经典973蘑菇| 洗冤录1国语高清在线观看免费| 正在播放: ROE-417 在见证女儿幸福的同时……却在婚礼宴席上,被女婿侵犯的母 | 美女没有穿内衣| 老九门西瓜| 新乡县| 丰乳肥臀16部合集| 魔法坏女巫2未删减| 郑州奥斯卡影城| 俘虏之村| 《漂亮的女邻居》2| 十大酷刑在线观看完整电影版 | 女人的秘密2电视剧在线| 换伴| 迪加奥特曼国语版全集爱奇艺| 国家命脉| 戈壁母亲全集免费观看| 高清《周年纪念日》电影| 逆风而行电视剧全集免费版| 巡回检察组43全集在线观看星辰| 斯托雅《法国女仆》| 牛仔很忙 mv| 如果我爱你全集剧情| 女子私人监狱免费完整版观看| 光辉岁月无吉他伴奏| 彷徨之刃日版在线播放| 4少妇按摩| 左手劈刀全集免费观看| 致美丽的你花絮| 《水电工的艳遇》韩国| 铁甲威虫| 快乐的大人免费观看完整高清综艺| 罚罪电视剧在线观看完整版| 兄弟的老婆电视剧| 大戏法电视剧| 金蝉脱壳1| 男女一起愁愁愁在线观看全集高| 黄土高天电视剧| 首发电影论坛| 她很漂亮电视剧韩国| 《风流女管家| 美式禁忌1——7| 监禁gv| 总统夫人星克莱尔在线观看| 梁小菊的春天全集| 黑土火影片子在线观看| 金银悔5| 深海狂鲨3| 娘王 下载| 1—45集电视剧免费播放| 售楼小姐的销售秘密在线观看 | 爱的解脱| 下属的妻子电影| 梦之安魂曲| 只是离婚的关系免费观看电视剧| 白峰电影高清播放在线观看| 背后的故事新还珠格格下| 灭火宝贝法版免费法国满天星| 征程之星火| 美容院的待遇8免费观看| 追爱大布局 电影| 不完美的女人| 维修工猎艳日韩影视| 女人出轨电影| 万古神帝全集| 需要爸爸播种子美国电视剧法国航空1982| 妖魔道之神仙学堂| 透析 电影| 古惑仔之江湖新秩序粤语| 妻子8免费完整高清中文版| 我弟弟的女朋友 电影| 掉了伴奏| 魔镜号中文在线播放| 超前看剧app网站| 教室那一间| 飞狐外传电视剧| 执行秘书电影在线观看| 特殊的美容院5待遇电影| 白昼美人| 同学3| 终极一班30| 哈利波特电影免费观看完整版| 高清《法国空乘2019》播放| 性生活电影院| 所罗门宝藏| 嗜血狂魔| 法国空乘5完整版免费播放| 高清《灭火宝贝5》电影| 里番牝教师 淫辱yy4180| 宴遇永安 电视剧 在线观看 | 李德印42式太极剑| 电影心理罪| 按摩胸部伦理片| 异种 电影| 王牌部队免费播放| 美丽的水蜜桃5伦理观后感| 让子弹飞完整版免费观看| 狂野时代未删减| 名欲场在线观看| 爸爸给我播种子免费观看 | 长大后电影| 老板强脱我的内裤| 野兽家族| 瓜达卢佩的玫瑰电影在线伦理片| 不扣扭女孩| 高清密探未删减| 摩登原始人1994满天星版 | 台湾版《棘手狂情》电影免费观看下| 李昀锐搞笑视频| 让子弹飞 删减| 《激战5》李丽珍| 我的阿勒泰电视剧免费观看| 小伙有娃前后变化大被认成爷爷 | 高压监狱伦理法国| 好汉两个半第9季| 惊悚50州第一季在线观看| 甜心妈妈动漫| 屈辱的婚纱奴隷花嫁1~2集| 电视剧雪豹| 想要的一天酷客| 牙医姐妹完整版视频播放| 《自由的她们》完整版免费观看| 白日梦我在线观看免费全集| 《姐弟恋》电影免费播放| 三年大片大全免费观看国语电影 | 《蛇王波后》完整版| 怀玉格格| over fly第一季在线观看| 警察故事四之简单任务| 地狱奶奶| 韩国办公室暂停时间的电影| 龙兴龘龘怎么读| 生死狙击百度影音| qvod成人资源网| 牙医姊妹1986电影免费观看| 《熟妇的荡欲》无删减迅雷| 风花雪月全集免费观看| 《甜蜜的惩罚2》第二季动漫全集| 塔日酒店未删减版在线观看 | 薄樱鬼耽美| 《束缚游戏》在线观看第一季免费1~3| 波姬小丝电影| 陆贞传奇电视剧全集| 丁大命41集电视剧免费播放| 需要爸爸播种子美国电| 不雅视频完整版| 枪口下的女人| 北影校花陈冰冰| 日本年经的继拇3| 奔跑吧兄弟第一期| 无颜之月1~5集无删减观看策驰 | 湘西诡案| 叛逆者哪个台播出| 霜降是什么时候| 陈宝莲满天星绝版免费观看| 独行侠字幕| 起飞英文| 深海利剑演员表| 三年在线观看免费大全| 梦幻超人动画片| 告诉我你想要什么 电影免费观看| 秦安县| 痛的插曲| 六指琴魔在线观看完整版免费| 木下和雅| 余姚市| 私人女性监| 梅丽莎 特里奥| 家属と姉妹の声| 大槻响作品番号| 韩剧隐身帽子免费完整版| 天师钟馗金超群版| 法国最年轻总统呼之欲出| 红安县| 台湾版《棘手狂情》电影在线免费观看 | XL司令第二季真人版全集免 | 尖峰时刻 3| 1—40全集观看理想之城| 《义子侵犯》北条麻妃在线观看| 六姊妹在线观看全集电视剧| 车贤静三级| 天龙特攻队 字幕| 中文字幕DI岳 和女胥电影| 年轻的母亲无删减| 红十字:女人们的入伍通知单| 全力以赴的行动派综艺免费观看| 黑白配免费高清观看| 天使降临| 阴阳师在线观看完整版免费| 韩剧爱的阶梯国语版| 杨敏思版1-5电视大结局在线观 | 战狼6妈| 中国女人免费观看电视剧| 桂林小张| 缉魂电影无删减完整版| 美国娃娃脸4国语免费观看| 驯服人妻HD中字日本| 浴血黑帮第四季| 年轻母亲6中文字版免费| 《爱我有几何》免费观看| 牧神记在线观看免费观看完整版| 死神千年血战第二季免费观看| 暗红1936电视剧全集| 哇嘎免费观看在线播放| 第一拽妃txt下载| 《大明王朝1566》电视剧| 千金女贼电视剧| 电影《香醇的绣感》在线观看| 手拉手歌曲| 神隐40集电视剧在线观看免费| 韩剧我的妈妈| 丽卡驯服2普通话版| 《韩国激情大合集》手机在线观看| 麻雀春天全集在线观看| 婶婶在线播放| 莉娜安德森《书虫》| 今天河南法制频道节目| 父亲筷子兄弟电影| 晚娘2012在线观看| 男人女人一起愁愁愁电视剧观看在看| 解放军军机南海拦截美军侦察机| 电视剧几度夕阳红| 三更之2饺子| 三姐妹瑜伽健身4| 将军夫人:夫君护短全集免费| overflow第一季樱花动漫| 四川少女免费观看电视连续剧| 韩剧《空调维修工》剧情| 我陪部长出差电影在线观看| 再世情缘免费观看电视剧全集| 我爱搞笑52g免费观看完整版| 周口市| 《人妻初次按摩忍不住| 左右不逢源第二季| 电影《孔雀》| 新妈妈视频| 倔强的驱魔师在线| 梁祝艳谭| 苦尽柑来| 侏罗纪公园5| 倔强驱魔师1-4集免费高清观看| 白雪公主白雪姬| 第一夫人在线观看| 美丽的蜜桃电影| 卖百科全书高清无删减| 雪中悍刀行第二部免费| 苗阜王声2016春晚| 包青天之诡墓空棺| 法国版《古墓丽影》在线播放| 香醇的绣感在线观看| 狂飙高清在线观看| 嫉妒的化身电视剧全集免费观看| 玉蒲团之| 战娘6全集在线观看| 隔壁的邻居免费观看中文| 使徒行者优酷| 全职猎人34| 韩剧办公室蓝色隐身帽子完整版| 双女任务电影高清完整版| 洪武大案电视剧| 金梅瓶下载| 暖暖国语版普通话免费观看| 维修师傅的艳遇韩国理论片在线观看| 《好运家》40集全免费看| 人猿泰山h| 侠岚第3季全集| 女版斯巴达成HR版在线观看| 珠帘玉幕 电视剧| 《哪吒1》免费观看完整版| 仲文你好vlog最新| 欧美年轻的继拇3| 《千金赤子板栗》完整| 陆小凤传奇绣花大盗| 我和我的祖国王菲| 沸腾人生| 欧美1-5| 刘思齐照片| 魔力宝贝监狱 完整版在线观看| 电视剧海天之恋| 王冰冰说自己不是一个自信的人| 凯登大战黑人| 生死之恋三部曲| 年代秀20121207| 终结电视剧全集观看| 男生女生一愁愁愁电视剧在线观30分钟|