3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

shell 生活0806012145

發(fā)布時(shí)間:2025/3/8 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shell 生活0806012145 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

引用:     ?
  學(xué)習(xí) Shell Scripts
?
如果您真的很想要走信息這條路,并且想要好好的管理好屬于您的主機(jī),那么,別說(shuō)鳥(niǎo)哥不告訴您, Shell Scripts 真的是必須要學(xué)習(xí)的一項(xiàng)課題呢!基本上, shell script 有點(diǎn)像是早期的批次檔, 亦即是將一些指令匯整起來(lái)一次執(zhí)行,但是 Shell script 擁有更強(qiáng)大的功能,那就是, 他可以進(jìn)行類(lèi)似程序 (program) 的撰寫(xiě),并且,不需要經(jīng)過(guò)編譯 (compiler) 就能夠執(zhí)行, 真的很方便。加上,我們可透過(guò) shell script 來(lái)簡(jiǎn)化我們?nèi)粘5墓ぷ鞴芾?#xff0c; 而且,整個(gè) Linux 環(huán)境中,一些服務(wù) (services) 的啟動(dòng)都是透過(guò) shell script 的, 如果您對(duì)于 script 不了解,嘿嘿!發(fā)生問(wèn)題時(shí),可真是會(huì)求助無(wú)門(mén)喔! 所以,好好的學(xué)一學(xué)他吧!??


1. 什么是 Shell Script
  1.1 干嘛學(xué)習(xí) shell scripts?
  1.2 第一支 script 的撰寫(xiě)與執(zhí)行
  1.3 撰寫(xiě) shell script 的良好習(xí)慣建立
2. 簡(jiǎn)單的 shell script 練習(xí):
3. 善用判斷式:
  3.1 利用 test 指令的測(cè)試功能
  3.2 利用判斷符號(hào) [ ]
  3.3 Shell script 的預(yù)設(shè)變數(shù)($0, $1...)
4. 條件判斷式:
  4.1 利用 if .... then
  4.2 利用 case ..... esac 判斷
  4.3 利用 function 功能
5. 循環(huán) (loop)
  5.1 while....do....done, until....do....done
  5.2 for...do...done
6. shell script 的追蹤與 debug
7. 本章習(xí)題練習(xí)


--------------------------------------------------------------------------------
什么是 Shell scripts ?

這個(gè)有趣的問(wèn)題趕緊來(lái)回答看看,什么是 shell script 呢? shell 我們?cè)?認(rèn)識(shí) bash 當(dāng)中已經(jīng)提過(guò)了,那是一個(gè)文字接口底下讓我們與系統(tǒng)溝通的一個(gè)工具接口,那么 script 是啥? 字面上的意義, script 是『腳本、劇本』的意思。整句話是說(shuō), shell script 是針對(duì) shell 所寫(xiě)的『劇本!』 什么東西啊?呵呵!其實(shí), shell script 是利用 shell 的功能所寫(xiě)的一個(gè)『程序 (program)』,這個(gè)程序是使用純文字文件,將一些 shell 的語(yǔ)法與指令寫(xiě)在里面, 搭配正規(guī)表示法、管線命令與數(shù)據(jù)流重導(dǎo)向等功能,以達(dá)到我們所想要的處理目的。

所以,簡(jiǎn)單的說(shuō), shell script 就像是早期 DOS 年代的批次檔 (.bat) ,最簡(jiǎn)單的功能就是將許多指令匯整寫(xiě)在一起, 讓使用者很輕易的就能夠 one touch (執(zhí)行一個(gè)檔案 "shell script" ,就能夠一次執(zhí)行多個(gè)指令), 而, shell script 更提供數(shù)組、循環(huán)、條件與邏輯判斷等重要功能,讓使用者也可以直接以 shell 來(lái)撰寫(xiě)程序,而不必使用類(lèi)似 C 程序語(yǔ)言等傳統(tǒng)程序撰寫(xiě)的語(yǔ)法呢!

那,這么說(shuō)您可以了解了嗎?是的! shell script 可以簡(jiǎn)單的被看成是批次檔, 也可以被說(shuō)成是一個(gè)程序語(yǔ)言,且這個(gè)程序語(yǔ)言由于都是利用 shell 與相關(guān)工具指令, 所以不需要編譯即可執(zhí)行,且擁有不錯(cuò)的除錯(cuò) (debug) 工具,所以,他可以幫助系統(tǒng)管理員快速的管理好主機(jī)。


--------------------------------------------------------------------------------
干嘛學(xué)習(xí) shell scripts?

這是個(gè)好問(wèn)題,我又干嘛一定要學(xué) shell script ?我又不是信息人,沒(méi)有寫(xiě)程序的概念, 那我干嘛還要學(xué) shell script 呢?不要學(xué)可不可以啊?呵呵~如果 Linux 對(duì)您而言, 您只是想要『會(huì)用』而已,那么,不需要學(xué) shell script 也還無(wú)所謂,這部分先給他跳過(guò)去, 等到有空的時(shí)候,再來(lái)好好的瞧一瞧。但是,如果您是真的想要玩清楚 Linux 的來(lái)龍去脈, 那么 shell script 就不可不知,為什么呢?因?yàn)?#xff1a;


自動(dòng)化管理的重要依據(jù):?
不用鳥(niǎo)哥說(shuō)您也知道,管理一部主機(jī)真不是件簡(jiǎn)單的事情,每天要進(jìn)行的任務(wù)就有: 查詢登錄檔、追蹤流量、監(jiān)控使用者使用主機(jī)狀態(tài)、主機(jī)各項(xiàng)硬設(shè)備狀態(tài)、 主機(jī)軟件更新查詢、更不要說(shuō)得應(yīng)付其它使用者的突然要求了。而這些工作, 您想要自行手動(dòng)處理,還是寫(xiě)個(gè)簡(jiǎn)單的程序來(lái)幫您每日自動(dòng)處理分析,若有問(wèn)題才通知您呢? 當(dāng)然是讓系統(tǒng)自動(dòng)工作比較好,對(duì)吧!呵呵~這就得要良好的 shell script 來(lái)幫忙的啦!


追蹤與管理系統(tǒng)的重要工作:?
雖然我們還沒(méi)有提到服務(wù)啟動(dòng)的方法,不過(guò),這里可以先提一下,我們 Linux 系統(tǒng)的服務(wù) ( services ) 啟動(dòng)的接口,在 /etc/init.d/ 這個(gè)目錄下,所有的檔案都是 scripts ; 另外,包括開(kāi)機(jī) (booting) 過(guò)程也都是利用 shell script 來(lái)幫忙搜尋系統(tǒng)的相關(guān)設(shè)定數(shù)據(jù), 然后再代入各個(gè)服務(wù)的設(shè)定參數(shù)啊!舉例來(lái)說(shuō),如果我們想要重新啟動(dòng)系統(tǒng)登錄文件, 可以使用:『/etc/init.d/syslogd restart』,那個(gè) syslogd 檔案就是 script 啦! 另外,我曾經(jīng)在某一代的 FC 上面發(fā)現(xiàn),啟動(dòng) MySQL 這個(gè)數(shù)據(jù)庫(kù)服務(wù)時(shí),確實(shí)是可以啟動(dòng)的, 但是屏幕上卻老是出現(xiàn)『failure』,后來(lái)才發(fā)現(xiàn),原來(lái)是啟動(dòng) MySQL 那個(gè) script 會(huì)主動(dòng)的以『空的密碼』去嘗試登入 MySQL ,但我修改過(guò) MySQL 的密碼啰~當(dāng)然就登入失敗~ 后來(lái)改了改 script ,就略去這個(gè)問(wèn)題啦!如此說(shuō)來(lái), script 確實(shí)是需要學(xué)習(xí)的啊!


簡(jiǎn)單入侵偵測(cè)功能:?
當(dāng)我們的系統(tǒng)有異狀時(shí),大多會(huì)將這些異狀記錄在系統(tǒng)記錄器,也就是我們常提到的『系統(tǒng)登錄文件』, 那么我們可以在固定的幾分鐘內(nèi)主動(dòng)的去分析系統(tǒng)登錄文件,若察覺(jué)有問(wèn)題,就立刻通報(bào)管理員, 或者是立刻加強(qiáng)防火墻的設(shè)定規(guī)則,如此一來(lái),您的主機(jī)可就能夠達(dá)到『自我保護(hù)』的聰明學(xué)習(xí)功能啦~ 舉例來(lái)說(shuō),我們可以通過(guò) shell script 去分析『當(dāng)該封包嘗試幾次還是聯(lián)機(jī)失敗之后,就予以抵擋住該 IP』之類(lèi)的舉動(dòng),例如鳥(niǎo)哥寫(xiě)過(guò)一個(gè)關(guān)于抵擋砍站軟件的 shell script , 就是用這個(gè)想法去達(dá)成的呢!


連續(xù)指令單一化:?
其實(shí),對(duì)于新手而言, script 最簡(jiǎn)單的功能就是:『匯整一些在 command line 下達(dá)的連續(xù)指令,將他寫(xiě)入 scripts 當(dāng)中,而由直接執(zhí)行 scripts 來(lái)啟動(dòng)一連串的 command line 指令輸出入!』例如: 防火墻連續(xù)規(guī)則 ( iptables ),開(kāi)機(jī)加載程序的項(xiàng)目 ( 就是在 /etc/rc.d/rc.local 里頭的數(shù)據(jù) ) ,等等都是相似的功能啦! 其實(shí),說(shuō)穿了,如果不考慮 program 的部分,那么 scripts 也可以想成,僅是幫我們把一大串的指令匯整在一個(gè)檔案里面, 而直接執(zhí)行該檔案就可以執(zhí)行那一串又臭又長(zhǎng)的指令段!就是這么簡(jiǎn)單啦!


簡(jiǎn)易的數(shù)據(jù)處理:?
由前一章 正規(guī)表示法 的 awk 程序說(shuō)明中, 您可以發(fā)現(xiàn), awk 可以用來(lái)處理簡(jiǎn)單的數(shù)據(jù)數(shù)據(jù)呢!例如薪資單的處理啊等等的。 shell script 的功能更強(qiáng)大,例如鳥(niǎo)哥曾經(jīng)用 shell script 直接處理數(shù)據(jù)數(shù)據(jù)的比對(duì)啊, 文字?jǐn)?shù)據(jù)的處理啊等等的,撰寫(xiě)方便,速度又快(因?yàn)樵?Linux 效能較佳), 真的是很不錯(cuò)用的啦!


跨平臺(tái)支持與學(xué)習(xí)歷程較短:?
幾乎所有的 Unix Like 上面都可以跑 shell script ,連 MS Windows 系列也有相關(guān)的仿真器可以用, 此外, shell script 的語(yǔ)法是相當(dāng)親和的,看都看的懂得文字,而不是機(jī)器碼, 很容易學(xué)習(xí)~這些都是您可以加以考慮的學(xué)習(xí)點(diǎn)啊!


上面這些都是您考慮學(xué)習(xí) shell script 的特點(diǎn)~此外, shell script 還可以簡(jiǎn)單的以 vi 來(lái)直接編寫(xiě),實(shí)在是很方便的好東西!所以,還是建議您學(xué)習(xí)一下啦。

不過(guò),雖然 shell script 號(hào)稱是程序 (program) ,但實(shí)際上, shell script 處理數(shù)據(jù)的速度上是不太夠的。因?yàn)?shell script 用的是外部的指令與 bash shell 的一些預(yù)設(shè)工具,所以,他常常會(huì)去呼叫外部的函式庫(kù),因此,運(yùn)算速度上面當(dāng)然比不上傳統(tǒng)的程序語(yǔ)言。 所以啰, shell script 用在系統(tǒng)管理上面是很好的一項(xiàng)工具,但是用在處理大量數(shù)值運(yùn)算上, 就不夠好了~而且還很麻煩,因?yàn)?#xff1a;Shell scripts 的速度較慢, 且使用的 CPU 資源較多,造成主機(jī)資源的分配不良。還好, 我們確實(shí)很少看到利用 shell script 在進(jìn)行大量數(shù)據(jù)運(yùn)算的,所以,不必?fù)?dān)心的啦!

?

--------------------------------------------------------------------------------
第一支 script 的撰寫(xiě)與執(zhí)行

如同前面講到的, shell script 其實(shí)就是純文字文件 (ASCII) ,我們可以編輯這個(gè)檔案, 然后讓這個(gè)檔案來(lái)幫我們一次執(zhí)行多個(gè)指令,或者是利用一些運(yùn)算與邏輯判斷來(lái)幫我們達(dá)成某些功能。 所以啦,要編輯這個(gè)檔案的內(nèi)容時(shí),當(dāng)然就需要具備有 bash shell 指令下達(dá)的相關(guān)認(rèn)識(shí)。 我們說(shuō)過(guò),要下達(dá)指令需要注意的事項(xiàng)在 bash 章節(jié)內(nèi)已經(jīng)提過(guò), 在 shell script 的撰寫(xiě)同樣需要用到這些注意事項(xiàng)的:
如同前面 bash command 提到的,指令與參數(shù)間的多個(gè)空白會(huì)被忽略掉;?
而空白行也將被忽略掉!,并且 [tab] 也是不會(huì)被理會(huì)的!?
如果讀取到一個(gè) Enter 符號(hào) ( CR )),就嘗試開(kāi)始執(zhí)行該行命令;?
至于如果一行的內(nèi)容太多,則可以使用 /[Enter] 來(lái)延伸至下一行;?
此外,使用最多的 # 可做為批注!任何加在 # 后面的字,將全部被視為批注文字而被忽略!?
如此一來(lái),我們?cè)?script 內(nèi)所撰寫(xiě)的程序,就會(huì)被一行一行的執(zhí)行。好了,那么這個(gè)程序假設(shè)文件名是 shell.sh 好了,如何執(zhí)行這個(gè)檔案?很簡(jiǎn)單,可以有底下幾個(gè)方法:
將 shell.sh 加上可讀與執(zhí)行 (rx) 的權(quán)限,然后就能夠以 ./shell.sh 來(lái)執(zhí)行了;?
直接以 sh shell.sh 的方式來(lái)直接執(zhí)行即可。
反正重點(diǎn)就是要讓那個(gè) shell.sh 內(nèi)的指令可以被執(zhí)行的意思啦!咦!那我為何需要使用 ./shell.sh 來(lái)下達(dá)指令? 還記得我們?cè)?bash 里面一直強(qiáng)調(diào)的,指令是否能夠被執(zhí)行與 PATH 這個(gè)環(huán)境變量有關(guān), 所以,要執(zhí)行『目前這個(gè)目錄下的某個(gè)檔案』就需要加上 ./ 這個(gè)目錄啦!另外,其實(shí)您也可以將 shell.sh 放在您家目錄下的 ~/bin 這個(gè)目錄中,然后利用 PATH="$PATH":~/bin 的設(shè)定, 嘿嘿,就能夠直接執(zhí)行您的 script 啰~ ^_^

那,為何 sh shell.sh 也可以執(zhí)行呢?這是因?yàn)?/bin/sh 其實(shí)就是 /bin/bash , 使用 sh shell.sh 亦即告訴系統(tǒng),我想要直接以 bash 的功能來(lái)執(zhí)行 shell.sh 這個(gè)檔案內(nèi)的相關(guān)指令的意思。 而我們也可以利用 sh 的參數(shù),如 -n 及 -x 來(lái)檢查與追蹤 shell.sh 的語(yǔ)法是否正確呢! ^_^


--------------------------------------------------------------------------------

撰寫(xiě)第一支 script?
不論是那個(gè)門(mén)派,要學(xué)武功要從掃地做起,那么要學(xué)程序呢?呵呵,肯定是由『秀出 Hello World!』 這個(gè)字眼開(kāi)始的!OK!那么鳥(niǎo)哥就先寫(xiě)一支 script 給大家瞧一瞧:
[root@linux ~]# mkdir scripts; cd scripts
[root@linux scripts]# vi sh01.sh
#!/bin/bash
# Program:
#?????? This program is used to show "Hello World !" in screen.
# History:
# 2005/08/23 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
echo -e "Hello World ! /a /n"
exit 0

?
在我們這個(gè)章節(jié)當(dāng)中,請(qǐng)將所有的撰寫(xiě)的 script 放置到您家目錄的 ~/scripts 這個(gè)目錄內(nèi), 比較好管理啦!上面的寫(xiě)法當(dāng)中,我主要將整個(gè)程序的撰寫(xiě)分成數(shù)段,大致是這樣:
第一行 #!/bin/bash 在宣告這個(gè) script 使用的 shell 名稱:
因?yàn)槲覀兪褂玫氖?bash ,所以,必須要以『 #!/bin/bash 』來(lái)宣告這個(gè)檔案內(nèi)的語(yǔ)法使用 bash 的語(yǔ)法!那么當(dāng)這個(gè)程序被執(zhí)行時(shí),他就能夠加載 bash 的相關(guān)環(huán)境設(shè)定檔, 并且執(zhí)行 bash 來(lái)使我們底下的指令能夠執(zhí)行!這很重要的!(在很多狀況中,如果沒(méi)有設(shè)定好這一行, 那么該程序很可能會(huì)無(wú)法執(zhí)行,因?yàn)橄到y(tǒng)可能無(wú)法判斷該程序需要使用什么 shell 來(lái)執(zhí)行啊!)


程序內(nèi)容的宣告:
整個(gè) script 當(dāng)中,除了第一行的 #! 是用來(lái)宣告 shell 的之外,其它的 # 都是『批注』用途! 所以上面的程序當(dāng)中,第二行以下就是用來(lái)說(shuō)明整個(gè)程序的狀態(tài)。一般來(lái)說(shuō), 建議您一定要養(yǎng)成說(shuō)明該 script 的:1. 內(nèi)容與功能; 2. 版本信息; 3. 作者與聯(lián)絡(luò)方式; 4. 建檔日期;5. 歷史紀(jì)錄 等等。這將有助于未來(lái)程序的改寫(xiě)與 debug 呢!


主要環(huán)境變量的宣告:
建議務(wù)必要將一些重要的環(huán)境變量設(shè)定好,鳥(niǎo)哥個(gè)人認(rèn)為, PATH 是當(dāng)中最重要的! 如此一來(lái),則可讓我們這支程序在進(jìn)行時(shí),可以直接下達(dá)指令, 而不必寫(xiě)絕對(duì)路徑呢!比較好啦!


主要程序部分
就將主要的程序?qū)懞眉纯?#xff01;在這個(gè)例子當(dāng)中,就是 echo 那一行啦!


執(zhí)行成果告知
是否記得我們?cè)?bash 里面要討論一個(gè)指令的執(zhí)行成功與否,可以使用 $? 這個(gè)變量來(lái)觀察~ 那么我們也可以利用 exit 這個(gè)指令來(lái)讓程序中斷,并且回傳一個(gè)數(shù)值給系統(tǒng)。 在我們這個(gè)例子當(dāng)中,我使用 exit 0 ,這代表離開(kāi) script ,并且回傳一個(gè) 0 給系統(tǒng), 所以我執(zhí)行完這個(gè) script 后,若接著下達(dá) echo $? 則可得到 0 的值喔! 更聰明的讀者應(yīng)該也知道了,呵呵!利用這個(gè) exit n 的功能,我們還可以自訂錯(cuò)誤訊息, 讓這支程序變得更加的 smart 呢!?
接下來(lái)執(zhí)行看看結(jié)果是怎樣吧?
[root@linux scripts]# sh sh01.sh
Hello World !


?
您會(huì)看到屏幕是這樣,而且應(yīng)該還會(huì)聽(tīng)到『咚』的一聲,為什么呢?還記得前一章提到的 printf 吧?用 echo 接著那些特殊的按鍵也可以發(fā)生同樣的事情~ 不過(guò), echo 必須要加上 -e 的參數(shù)才行! 呵呵!在您寫(xiě)完這個(gè)小 script 之后,您就可以大聲的說(shuō):『我也會(huì)寫(xiě)程序了』!哈哈! 很簡(jiǎn)單有趣吧~ ^_^

另外,你也可以利用:『chmod a+x sh01.sh; ./sh01.sh』來(lái)執(zhí)行這個(gè) script 的呢!


--------------------------------------------------------------------------------
撰寫(xiě) shell script 的良好習(xí)慣建立

一個(gè)良好習(xí)慣的養(yǎng)成是很重要的~大家在剛開(kāi)始撰寫(xiě)程序的時(shí)候,最容易忽略這部分, 認(rèn)為程序?qū)懗鰜?lái)就好了,其它的不重要。其實(shí),如果程序的說(shuō)明能夠更清楚, 那么對(duì)您自己是有很大的幫助的。

舉例來(lái)說(shuō),鳥(niǎo)哥自己為了自己的需求,曾經(jīng)撰寫(xiě)了不少的 script 來(lái)幫我進(jìn)行主機(jī) IP 的偵測(cè)啊、 登錄檔分析與管理啊、自動(dòng)上傳下載重要設(shè)定檔啊等等的,不過(guò),早期就是因?yàn)樘珣辛?#xff0c; 管理的主機(jī)又太多了,常常同一個(gè)程序在不同的主機(jī)上面進(jìn)行更改,到最后,到底哪一支才是最新的都記不起來(lái), 而且,重點(diǎn)是,我到底是改了哪里??為什么做那樣的修改?都忘的一乾二凈~真要命~

所以,后來(lái)鳥(niǎo)哥在寫(xiě)程序的時(shí)候,通常會(huì)比較仔細(xì)的將程序的設(shè)計(jì)過(guò)程給他記錄下來(lái), 而且還會(huì)記錄一些歷史紀(jì)錄,如此一來(lái),好多了~ 至少很容易知道我修改了哪些數(shù)據(jù),以及程序修改的理念與邏輯概念等等, 在維護(hù)上面是輕松很多很多的喔!

另外,在一些環(huán)境的設(shè)定上面,畢竟每個(gè)人的環(huán)境都不相同,為了取得較佳的執(zhí)行環(huán)境, 我都會(huì)自行先定義好一些一定會(huì)被用到的環(huán)境變量,例如 PATH 這個(gè)玩意兒! 這樣比較好啦~所以說(shuō),建議您一定要養(yǎng)成良好的 script 撰寫(xiě)習(xí)慣, 在每個(gè) script 的文件頭處記錄好:
script 的功能;?
script 的版本信息;?
script 的作者與聯(lián)絡(luò)方式;?
script 的版權(quán)宣告方式;?
script 的 History (歷史紀(jì)錄);?
script 內(nèi)較特殊的指令,使用絕對(duì)路徑的方式來(lái)下達(dá);?
script 運(yùn)作時(shí)需要的環(huán)境變量預(yù)先宣告與設(shè)定。

--------------------------------------------------------------------------------
簡(jiǎn)單的 shell script 練習(xí)

在第一支 shell script 撰寫(xiě)完畢之后,相信您應(yīng)該具有基本的撰寫(xiě)功力了。 接下來(lái),在開(kāi)始更深入的程序概念之前,我們先來(lái)玩一些比較有趣的簡(jiǎn)單的小范例好了。 底下的范例中,達(dá)成結(jié)果的方式相當(dāng)?shù)亩?#xff0c;建議您先自行撰寫(xiě)看看,寫(xiě)完之后再與鳥(niǎo)哥寫(xiě)的內(nèi)容比對(duì), 這樣才能更加深概念喔!好!不啰唆,我們就一個(gè)一個(gè)來(lái)玩吧!


--------------------------------------------------------------------------------

變量?jī)?nèi)容由使用者決定?
很多時(shí)候我們需要使用者輸入一些內(nèi)容,好讓程序可以順利運(yùn)作。 簡(jiǎn)單的來(lái)說(shuō),大家應(yīng)該都有安裝過(guò)軟件的經(jīng)驗(yàn),安裝的時(shí)候,他不是會(huì)問(wèn)您『要安裝到那個(gè)目錄去?』嗎? 那個(gè)讓使用者輸入的數(shù)據(jù)的動(dòng)作,就是讓使用者輸入變量?jī)?nèi)容啦。

你應(yīng)該還記得在 bash 的時(shí)候,我們有學(xué)到一個(gè) read 指令吧?忘記的話,請(qǐng)自行回頭去閱讀一番。 現(xiàn)在,請(qǐng)你以 read 指令的用途,撰寫(xiě)一個(gè) script ,他可以讓使用者輸入:1 first name 與 2. last name, 最后并且在屏幕上顯示:『Your full name is: 』的內(nèi)容:
[root@linux scripts]# vi sh02.sh
#!/bin/bash
# Program:
#? Let user keyin their first and last name, and show their full name.
# History:
# 2005/08/23 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

read -p "Please input your first name: " firstname
read -p "Please input your last name:? " lastname
echo -e "/nYour full name is: $firstname $lastname"

?
將上面這個(gè) sh02.sh 執(zhí)行一下,你就能夠發(fā)現(xiàn)使用者自己輸入的變量可以被取用的哩! 很不錯(cuò)吧!加油!

?

--------------------------------------------------------------------------------

利用 date 進(jìn)行檔案的建立?
想象一個(gè)狀況,如果我每天要進(jìn)行備份,而備份的數(shù)據(jù)又不想被覆蓋掉,也就是說(shuō), 我想要將每天備份的數(shù)據(jù)放在不同的檔案中。哇!這真困擾啊?難道要我每天去修改 script ? 不需要啊!因?yàn)槊刻斓摹喝掌凇徊⒉幌嗤?#xff0c;所以我可以將檔名取成類(lèi)似: backup.20050802 , 不就可以每天一個(gè)不同檔名了嗎?呵呵!確實(shí)如此。好了,接下來(lái)出個(gè)例子: 我想要建立三個(gè)空的檔案,檔名最開(kāi)頭由使用者輸入決定,假設(shè)使用者輸入 filename 好了, 那今天的日期是 2005/08/23 ,我想要以前天、昨天、今天的日期來(lái)建立這個(gè)檔案,亦即 filename_20050821, filename_20050822, filename_20050823 ,該如何是好?
[root@linux scripts]# vi sh03.sh
#!/bin/bash
# Program:
#? User can keyin filename to touch 3 new files.
# History:
# 2005/08/23 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

# 1. 讓使用者輸入文件名稱,并取得 fileuser 這個(gè)變量;
echo -e "I will use 'touch' command to create 3 files."
read -p "Please input the filename what you want: " fileuser

# 2. 為了避免使用者隨意按 Enter ,利用變量功能分析文件名是否有設(shè)定?
filename=${fileuser:-"filename"}

# 3. 開(kāi)始利用 date 指令來(lái)取得所需要的檔名了;
date1=`date --date='2 days ago' +%Y%m%d`
date2=`date --date='1 days ago' +%Y%m%d`
date3=`date +%Y%m%d`
file1="$filename""$date1"
file2="$filename""$date2"
file3="$filename""$date3"

# 4. 將檔名建立吧!
touch $file1
touch $file2
touch $file3

?
我透過(guò)一些簡(jiǎn)單的動(dòng)作,這些動(dòng)作都可以在 bash 那一章里面找到, 包括小指令 (`) 的取得訊息、變量的設(shè)定功能、變量的累加以及利用 touch 指令輔助! 如果您開(kāi)始執(zhí)行這個(gè) sh03.sh 之后,你可以進(jìn)行兩次輸入,一次直接按 [Enter] 來(lái)查閱檔名是啥? 一次可以輸入一些字符,這樣來(lái)判斷你的檔案喔!關(guān)于 date 的指令應(yīng)用,請(qǐng) man date 吧! ^_^

?

--------------------------------------------------------------------------------

數(shù)值運(yùn)算的方法?
各位看官應(yīng)該還記得,我們可以使用 declare 來(lái)定義變量的類(lèi)型吧?! 這樣才能夠進(jìn)行加減運(yùn)算啊!可惜的是, bash shell 里頭預(yù)設(shè)僅支持到整數(shù)的數(shù)據(jù)。 OK!那我們來(lái)玩玩看,如果我們要使用者輸入兩個(gè)變量,然后將兩個(gè)變量的內(nèi)容相乘, 最后輸出相乘的結(jié)果,那可以怎么做?
[root@linux scripts]# vi sh04.sh
#!/bin/bash
# Program:
#? User can input 2 integer to cross by!
# History:
# 2005/08/23 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
echo -e "You SHOULD input 2 number, I will cross they! /n"
read -p "first number:? " firstnu
read -p "second number: " secnu
total=$(($firstnu*$secnu))
echo -e "/nThe number $firstnu x $secnu is ==> $total"

?
在數(shù)字的運(yùn)算上,我們可以使用『 declare -i total=$firstnu*$secnu 』 也可以使用上面的方式來(lái)進(jìn)行!基本上,鳥(niǎo)哥比較建議使用這樣的方式來(lái)進(jìn)行運(yùn)算:?
var=$((運(yùn)算內(nèi)容))
不但容易記憶,而且也比較方便的多~未來(lái)您可以使用這種方式來(lái)計(jì)算的呀!至于數(shù)值運(yùn)算上的處理, 則有:+, -, *, /, %等等。 那個(gè) % 是取余數(shù)啦~舉例來(lái)說(shuō), 13 對(duì) 3 取余數(shù),結(jié)果是 13=4*3+1,所以余數(shù)是 1 啊!就是:
[root@linux scripts]# nu=$((13%3)); echo $nu
1

?
這樣了解了吧?!多多學(xué)習(xí)與應(yīng)用喔! ^_^


--------------------------------------------------------------------------------
善用判斷式

在 bash 章節(jié)中,我們提到過(guò) $? 這個(gè)變量所代表的意義, 此外,也透過(guò) && 及 || 來(lái)作為前一個(gè)指令是否能夠成功進(jìn)行的一個(gè)參考。 那么,如果我想要知道 /dmtsai 這個(gè)目錄是否存在時(shí),難道一定要使用 ls 來(lái)執(zhí)行, 然后再以 $? 來(lái)判斷執(zhí)行成果嗎?呵呵!當(dāng)然不需要! 我們可以透過(guò)『 test 』這個(gè)指令來(lái)偵測(cè)呢!


--------------------------------------------------------------------------------
利用 test 指令的測(cè)試功能

當(dāng)我要檢測(cè)系統(tǒng)上面某些檔案或者是相關(guān)的屬性時(shí),利用 test 這個(gè)指令來(lái)工作, 真是好用得不得了,舉例來(lái)說(shuō),我要檢查 /dmtsai 是否存在時(shí),使用:
[root@linux ~]# test -e /dmtsai

?
執(zhí)行結(jié)果并不會(huì)顯示任何訊息,但最后我們可以透過(guò) $? 或 && 及 || 來(lái)展現(xiàn)整個(gè)結(jié)果呢! 例如我們?cè)趯⑸厦娴睦痈膶?xiě)成這樣:
[root@linux ~]# test -e /dmtsai && echo "exist" || echo "Not exist"

?
最終的結(jié)果可以告知我們是『exist』還是『Not exist』呢!那我知道 -e 是測(cè)試一個(gè)『東西』在不在, 如果還想要測(cè)試一下該檔名是啥玩意兒時(shí),還有哪些標(biāo)志可以來(lái)判斷的呢?呵呵!有底下這些東西喔!

測(cè)試的標(biāo)志 代表意義?
1. 關(guān)于某個(gè)檔名的『類(lèi)型』偵測(cè)(存在與否),如 test -e filename?
-e 該『檔名』是否存在?(常用)?
-f 該『檔名』是否為檔案(file)?(常用)?
-d 該『文件名』是否為目錄(directory)?(常用)?
-b 該『檔名』是否為一個(gè) block device 裝置??
-c 該『檔名』是否為一個(gè) character device 裝置??
-S 該『檔名』是否為一個(gè) Socket 檔案??
-p 該『檔名』是否為一個(gè) FIFO (pipe) 檔案??
-L 該『檔名』是否為一個(gè)連結(jié)檔??
2. 關(guān)于檔案的權(quán)限偵測(cè),如 test -r filename?
-r 偵測(cè)該檔名是否具有『可讀』的屬性??
-w 偵測(cè)該檔名是否具有『可寫(xiě)』的屬性??
-x 偵測(cè)該檔名是否具有『可執(zhí)行』的屬性??
-u 偵測(cè)該文件名是否具有『SUID』的屬性??
-g 偵測(cè)該文件名是否具有『SGID』的屬性??
-k 偵測(cè)該文件名是否具有『Sticky bit』的屬性??
-s 偵測(cè)該檔名是否為『非空白檔案』??
3. 兩個(gè)檔案之間的比較,如: test file1 -nt file2?
-nt (newer than)判斷 file1 是否比 file2 新?
-ot (older than)判斷 file1 是否比 file2 舊?
-ef 判斷 file2 與 file2 是否為同一檔案,可用在判斷 hard link 的判定上。 主要意義在判定,兩個(gè)檔案是否均指向同一個(gè) inode 哩!?
4. 關(guān)于兩個(gè)整數(shù)之間的判定,例如 test n1 -eq n2?
-eq 兩數(shù)值相等 (equal)?
-ne 兩數(shù)值不等 (not equal)?
-gt n1 大于 n2 (greater than)?
-lt n1 小于 n2 (less than)?
-ge n1 大于等于 n2 (greater than or equal)?
-le n1 小于等于 n2 (less than or equal)?
5. 判定字符串的數(shù)據(jù)?
test -z string 判定字符串是否為 0 ?若 string 為空字符串,則為 true?
test -n string 判定字符串是否非為 0 ?若 string 為空字符串,則為 false。
注: -n 亦可省略?
test str1 = str2 判定 str1 是否等于 str2 ,若相等,則回傳 true?
test str1 != str2 判定 str1 是否不等于 str2 ,若相等,則回傳 false?
6. 多重條件判定,例如: test -r filename -a -x filename?
-a (and)兩狀況同時(shí)成立!例如 test -r file -a -x file,則 file 同時(shí)具有 r 與 x 權(quán)限時(shí),才回傳 true。?
-o (or)兩狀況任何一個(gè)成立!例如 test -r file -o -x file,則 file 具有 r 或 x 權(quán)限時(shí),就可回傳 true。?
! 反相狀態(tài),如 test ! -x file ,當(dāng) file 不具有 x 時(shí),回傳 true?

OK!現(xiàn)在我們就利用 test 來(lái)幫我們寫(xiě)幾個(gè)簡(jiǎn)單的例子。首先,判斷一下, 讓使用者輸入一個(gè)檔名,我們判斷:
這個(gè)檔案是否存在,若不存在則給予一個(gè)『Filename does not exist』的訊息,并中斷程序;?
若這個(gè)檔案存在,則判斷他是個(gè)檔案或目錄,結(jié)果輸出『Filename is regular file』或 『Filename is directory』?
判斷一下,執(zhí)行者的身份對(duì)這個(gè)檔案或目錄所擁有的權(quán)限,并輸出權(quán)限數(shù)據(jù)!
你可以先自行創(chuàng)作看看,然后再跟底下的結(jié)果討論討論。注意利用 test 與 && 還有 || 等標(biāo)志!
[root@linux scripts]# vi sh05.sh
#!/bin/bash
# Program:
#? Let user input a filename, the program will search the filename
# 1.) exist? 2.) file/directory? 3.) file permissions?
# History:
# 2005/08/25 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

# 1. 讓使用者輸入檔名,并且判斷使用者是否真的有輸入字符串?
echo -e "The program will show you that filename is exist which input by you./n/n"
read -p "Input a filename : " filename
test -z $filename && echo "You MUST input a filename." && exit 0
# 2. 判斷檔案是否存在?
test ! -e $filename && echo "The filename $filename DO NOT exist" && exit 0
# 3. 開(kāi)始判斷檔案類(lèi)型與屬性
test -f $filename && filetype="regulare file"
test -d $filename && filetype="directory"
test -r $filename && perm="readable"
test -w $filename && perm="$perm writable"
test -x $filename && perm="$perm executable"
# 4. 開(kāi)始輸出信息!
echo "The filename: $filename is a $filetype"
echo "And the permission are : $perm"

?
很有趣的例子吧!您可以自行再以其它的案例來(lái)撰寫(xiě)一下可用的功能呢!

?

--------------------------------------------------------------------------------
利用判斷符號(hào) [ ]

除了我們很喜歡使用的 test 之外,其實(shí),我們還可以利用判斷符號(hào)『 [ ] 』來(lái)進(jìn)行數(shù)據(jù)的判斷呢! 舉例來(lái)說(shuō),如果我想要知道 $HOME 這個(gè)變量是否為空的,可以這樣做:
[root@linux ~]# [ -z "$HOME" ]

?
但使用 [] 要特別注意的是,在上述的每個(gè)組件中間都需要有空格鍵來(lái)分隔,假設(shè)我空格鍵使用『□』來(lái)表示, 那么,在這些地方你都需要有空格鍵:
[? "$HOME"? ==? "$MAIL"? ]
[□"$HOME"□==□"$MAIL"□]
?↑?????? ↑? ↑?????? ↑

?
上面的例子在說(shuō)明,兩個(gè)字符串 $HOME 與 $MAIL 是否相同的意思,相當(dāng)于 test $HOME = $MAIL 的意思啦! 而如果沒(méi)有空白分隔,例如 [$HOME==$MAIL] 時(shí),我們的 bash 就會(huì)顯示錯(cuò)誤訊息了!這可要很注意啊! 所以說(shuō),您最好要注意:
在中括號(hào) [] 內(nèi)的每個(gè)組件都需要有空格鍵來(lái)分隔;?
在中括號(hào)內(nèi)的變量,最好都以雙引號(hào)來(lái)設(shè)定;?
在中括號(hào)內(nèi)的常數(shù),最好都以單或雙引號(hào)來(lái)設(shè)定。
舉例來(lái)說(shuō),假如我設(shè)定了 name="VBird Tsai" ,然后這樣判定:
[root@linux ~]# name="VBird Tsai"
[root@linux ~]# [ $name == "VBird" ]
bash: [: too many arguments

?
為什么呢?因?yàn)?$name 如果沒(méi)有使用雙引號(hào)刮起來(lái),那么上面的判定式會(huì)變成:?
[ VBird Tsai == "VBird" ]?
而不是我們要的:?
[ "VBird Tsai" == "VBird" ]?
這可是差很多的喔!另外,中括號(hào)的使用方法與標(biāo)志與 test 幾乎一模一樣啊~ 只是中括號(hào)比較常用在條件判斷式 if ..... then ..... fi 的情況中就是了。 好,那我們也繼續(xù)來(lái)做一個(gè)小案例好了:
當(dāng)執(zhí)行一個(gè)程序的時(shí)候,這個(gè)程序會(huì)讓使用者選擇 Y 或 N ,?
如果使用者輸入 Y 或 y 時(shí),就顯示『 OK, continue 』?
如果使用者輸入 n 或 N 時(shí),就顯示『 Oh, interrupt !』?
如果不是 Y/y/N/n 之內(nèi)的其它字符,就顯示『I don't know what is your choise』
利用中括號(hào)、 && 與 || 來(lái)繼續(xù)吧!
[root@linux scripts]# vi sh06.sh
#!/bin/bash
# Program:
#? This program will show the user's choice
# History:
# 2005/08/25 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

read -p "Please input (Y/N): " yn
[ "$yn" == "Y" -o "$yn" == "y" ] && echo "OK, continue" && exit 0
[ "$yn" == "N" -o "$yn" == "n" ] && echo "Oh, interrupt!" && exit 0
echo "I don't know what is your choise" && exit 0

?
很有趣吧!利用這個(gè)字符串判別的方法,我們就可以很輕松的將使用者想要進(jìn)行的工作分門(mén)別類(lèi)呢! 接下來(lái),我們?cè)賮?lái)談一些其它有的沒(méi)有的東西吧!

Tips:
為什么判斷式里面下達(dá)等于要用 == 而不是一個(gè) = 就好了呢?我們?cè)谇耙徽抡?guī)表示法里面的 awk 提到, 只有一個(gè) = 用來(lái)給予一個(gè)變量設(shè)定其內(nèi)容,邏輯判斷時(shí),則會(huì)給予兩個(gè)等于, 亦即『比較』而非『設(shè)定』的意思~這里要好好的分辨一下喔! ^_^???


--------------------------------------------------------------------------------
Shell script 的預(yù)設(shè)變數(shù)($0, $1...)

其實(shí),當(dāng)我們執(zhí)行一個(gè) shell script 時(shí),在這個(gè) shell script 里面就已將幫我們做好一些可用的變量了。 舉例來(lái)說(shuō),在不久的將來(lái),您就會(huì)發(fā)現(xiàn),當(dāng)我們要啟動(dòng)一個(gè)系統(tǒng)服務(wù)時(shí),可能會(huì)下達(dá)類(lèi)似這樣的指令:
[root@linux ~]# /etc/init.d/crond restart

?
那是啥玩意兒?呵呵!就是『向 /etc/init.d/crond 這個(gè) script 下達(dá) restart 的指令』, 咦!我們不是都使用 read 來(lái)讀取使用者輸入的變量?jī)?nèi)容嗎?為啥我可以直接在 script 后面接上這個(gè)參數(shù)? 這是因?yàn)?shell script 幫我們?cè)O(shè)定好一些指定的變量了!變量的對(duì)應(yīng)是這樣的:

/path/to/scriptname? opt1? opt2? opt3? opt4? ...
?????? $0???????????? $1??? $2??? $3??? $4?? ...

?
這樣夠清楚了吧?!執(zhí)行的文件名為 $0 這個(gè)變量,第一個(gè)接的參數(shù)就是 $1 啊~ 所以,只要我們?cè)?script 里面善用 $1 的話,就可以很簡(jiǎn)單的立即下達(dá)某些指令功能了! 好了,來(lái)做個(gè)例子吧~假設(shè)我要執(zhí)行一個(gè) script ,執(zhí)行后,該 script 會(huì)自動(dòng)列出自己的檔名, 還有后面接的前三個(gè)參數(shù),該如何是好?
[root@linux scripts]# vi sh07.sh
#!/bin/bash
# Program:
#? The program will show it's name and first 3 parameters.
# History:
# 2005/08/25 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

echo "The script naem is ==> $0"
[ -n "$1" ] && echo "The 1st paramter is ==> $1" || exit 0
[ -n "$2" ] && echo "The 2nd paramter is ==> $2" || exit 0
[ -n "$3" ] && echo "The 3th paramter is ==> $3" || exit 0

?
這支程序里面鳥(niǎo)哥加上了一些控制式,亦即利用 && 及 || 來(lái)加以判斷 $1 ~ $3 是否存在? 若存在才顯示,若不存在就中斷~執(zhí)行結(jié)果如下:
[root@linux scripts]# sh sh07.sh theone haha quot
The script naem is ==> sh07.sh
The 1st paramter is ==> theone
The 2nd paramter is ==> haha
The 3th paramter is ==> quot

?
上面這七的例子都很簡(jiǎn)單吧?幾乎都是利用 bash 的相關(guān)功能而已~ 不難啦~底下我們就要使用條件判斷式來(lái)進(jìn)行一些分別功能的設(shè)定了,好好瞧一瞧先~?

--------------------------------------------------------------------------------
條件判斷式:

只要講到『程序』的話,那么條件判斷式,亦即是『 if then 』這種判別式肯定一定要學(xué)習(xí)的! 因?yàn)楹芏鄷r(shí)候,我們都必須要依據(jù)某些數(shù)據(jù)來(lái)判斷程序該如何進(jìn)行。舉例來(lái)說(shuō),我們?cè)谏项^不是有練習(xí)當(dāng)使用者輸入 Y/N 時(shí),必須要執(zhí)行不同的訊息輸出嗎?簡(jiǎn)單的方式可以利用 && 與 || ,但如果我還想要執(zhí)行一堆指令呢? 那真的得要 if then 來(lái)幫忙啰~底下我們就來(lái)聊一聊!


--------------------------------------------------------------------------------
利用 if .... then

這個(gè) if .... then 是最常見(jiàn)的條件判斷式了~簡(jiǎn)單的說(shuō),就是當(dāng)符合某個(gè)條件判斷的時(shí)候, 就予以進(jìn)行某項(xiàng)工作就是了。我們可以簡(jiǎn)單的這樣看:
if [ 條件判斷式 ]; then
當(dāng)條件判斷式成立時(shí),可以進(jìn)行的指令工作內(nèi)容;
fi

?
至于條件判斷式的判斷方法,與前一小節(jié)的介紹相同啊!較特別的是,如果我有多個(gè)條件要判別時(shí), 除了 sh06.sh 那個(gè)案例,也就是將多個(gè)條件寫(xiě)入一個(gè)中括號(hào)內(nèi)的情況之外, 我還可以有多個(gè)中括號(hào)來(lái)隔開(kāi)喔!而括號(hào)與括號(hào)之間,則以 && 或 || 來(lái)隔開(kāi),他們的意義是:?
&& 代表 AND ;?
|| 代表 or ;
所以,在使用中括號(hào)的判斷式中, && 及 || 就與指令下達(dá)的狀態(tài)不同了。舉例來(lái)說(shuō), sh06.sh 那個(gè)例子我可以改寫(xiě)成這樣:
[root@linux scripts]# vi sh06-2.sh
#!/bin/bash
# Program:
#? This program will show the user's choice
# History:
# 2005/08/25 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

read -p "Please input (Y/N): " yn

if [ "$yn" == "Y" ] || [ "$yn" == "y" ]; then
echo "OK, continue"
exit 0
fi
if [ "$yn" == "N" ] || [ "$yn" == "n" ]; then
echo "Oh, interrupt!"
exit 0
fi
echo "I don't know what is your choise" && exit 0

?
不過(guò),由這個(gè)例子看起來(lái),似乎也沒(méi)有什么了不起吧? sh06.sh 還比較簡(jiǎn)單呢~ 但是,如果我們考慮底下的狀態(tài),您就會(huì)知道 if then 的好處了:
if [ 條件判斷式 ]; then
當(dāng)條件判斷式成立時(shí),可以進(jìn)行的指令工作內(nèi)容;
else
當(dāng)條件判斷式不成立時(shí),可以進(jìn)行的指令工作內(nèi)容;
fi

?
如果考慮更復(fù)雜的情況,則可以使用這個(gè)語(yǔ)法:
if [ 條件判斷式一 ]; then
當(dāng)條件判斷式一成立時(shí),可以進(jìn)行的指令工作內(nèi)容;
elif [ 條件判斷式二 ]; then
當(dāng)條件判斷式二成立時(shí),可以進(jìn)行的指令工作內(nèi)容;
else
當(dāng)條件判斷式一與二均不成立時(shí),可以進(jìn)行的指令工作內(nèi)容;
fi

?
那我就可以將 sh06-2.sh 改寫(xiě)成這樣:
[root@linux scripts]# vi sh06-3.sh
#!/bin/bash
# Program:
#? This program will show the user's choice
# History:
# 2005/08/25 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

read -p "Please input (Y/N): " yn

if [ "$yn" == "Y" ] || [ "$yn" == "y" ]; then
echo "OK, continue"
elif [ "$yn" == "N" ] || [ "$yn" == "n" ]; then
echo "Oh, interrupt!"
else
echo "I don't know what is your choise"
fi

?
是否程序變得很簡(jiǎn)單,而且依序判斷,可以避免掉重復(fù)判斷的狀況,這樣真的很容易設(shè)計(jì)程序的啦! ^_^ 好了,那么如果我要偵測(cè)你所輸入的參數(shù)是否為 hello 呢 , 也就是說(shuō),如果我想要知道,你在程序后面所接的第一個(gè)參數(shù) (就是 $1 啊!) 是否為 hello ,
如果是的話,就顯示 "Hello, how are you ?";?
如果沒(méi)有加任何參數(shù),就提示使用者必須要使用的參數(shù)下達(dá)法;?
而如果加入的參數(shù)不是 hello ,就提醒使用者僅能使用 hello 為參數(shù)。
整個(gè)程序的撰寫(xiě)可以是這樣的:
[root@linux scripts]# vi sh08.sh
#!/bin/bash
# Program:
#? Show "Hello" from $1....
# History:
# 2005/08/28 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

if [ "$1" == "hello" ]; then
echo "Hello, how are you ?"
elif [ "$1" == "" ]; then
echo "You MUST input parameters, ex> $0 someword"
else
echo "The only parameter is 'hello'"
fi

?
然后您可以執(zhí)行這支程序,分別在 $1 的位置輸入 hello, 沒(méi)有輸入與隨意輸入, 就可以看到不同的輸出啰~是否還覺(jué)得挺簡(jiǎn)單的啊! ^_^。事實(shí)上, 學(xué)到這里,也真的很厲害了~好了,底下我們繼續(xù)來(lái)玩一些比較大一點(diǎn)的啰~ 我們?cè)谇耙徽乱呀?jīng)學(xué)會(huì)了 grep 這個(gè)好用的玩意兒,那么多學(xué)一個(gè)叫做 netstat 的指令, 這個(gè)指令可以查詢到目前主機(jī)有開(kāi)啟的網(wǎng)絡(luò)服務(wù)端口口 (service ports), 相關(guān)的功能我們會(huì)在服務(wù)器架設(shè)篇繼續(xù)介紹,這里您只要知道,我可以利用『 netstat -tuln 』來(lái)取得目前主機(jī)有啟動(dòng)的服務(wù), 而且取得的信息有點(diǎn)像這樣:
[root@linux ~]# netstat -tuln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address?? Foreign Address??? State
tcp??????? 0????? 0 0.0.0.0:199???? 0.0.0.0:*????????? LISTEN
tcp??????? 0????? 0 :::80?????????? :::*?????????????? LISTEN
tcp??????? 0????? 0 :::22?????????? :::*?????????????? LISTEN
tcp??????? 0????? 0 :::25?????????? :::*?????????????? LISTEN

?
上面的重點(diǎn)是特殊字體的那個(gè)部分,那些特殊字體的部分代表的就是 port 啰~ 那么每個(gè) port 代表的意義為何呢?幾個(gè)常見(jiàn)的 port 與相關(guān)網(wǎng)絡(luò)服務(wù)的關(guān)系是:?
80: WWW?
22: ssh?
21: ftp?
25: mail
那我如何透過(guò) netstat 去偵測(cè)我的主機(jī)是否有開(kāi)啟這四個(gè)主要的網(wǎng)絡(luò)服務(wù)端口口呢? 我可以簡(jiǎn)單的這樣去寫(xiě)這個(gè)程序喔:
[root@linux scripts]# vi sh09.sh
#!/bin/bash
# Program:
#? Using netstat and grep to detect WWW,SSH,FTP and Mail services.
# History:
# 2005/08/28 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

# 1. 先作一些告知的動(dòng)作而已~
echo "Now, the services of your Linux system will be detect!"
echo -e "The www, ftp, ssh, and mail will be detect! /n"

# 2. 開(kāi)始進(jìn)行一些測(cè)試的工作,并且也輸出一些信息啰!
testing=`netstat -tuln | grep ":80 "`
if [ "$testing" != "" ]; then
echo "WWW is running in your system."
fi
testing=`netstat -tuln | grep ":22 "`
if [ "$testing" != "" ]; then
echo "SSH is running in your system."
fi
testing=`netstat -tuln | grep ":21 "`
if [ "$testing" != "" ]; then
echo "FTP is running in your system."
fi
testing=`netstat -tuln | grep ":25 "`
if [ "$testing" != "" ]; then
echo "Mail is running in your system."
fi

?
這樣又能夠一個(gè)一個(gè)的檢查啰~是否很有趣啊! ^_^。接下來(lái),我們?cè)賮?lái)玩更難一點(diǎn)的。 我們知道可以利用 date 來(lái)顯示日期與時(shí)間,也可以利用 $((計(jì)算式)) 來(lái)計(jì)算數(shù)值運(yùn)算。 另外, date 也可以用來(lái)顯示自 19710101 以來(lái)的『總秒數(shù)』 (請(qǐng)自行查閱 man date 及 info date) 。那么,您是否可以撰寫(xiě)一支小程序,用來(lái)『計(jì)算退伍日期還剩幾天?』也就是說(shuō):
先讓使用者輸入他們的退伍日期;?
再由現(xiàn)在日期比對(duì)退伍日期;?
由兩個(gè)日期的比較來(lái)顯示『還需要幾天』才能夠退伍的字樣。
似乎挺難的樣子?其實(shí)也不會(huì)啦,利用『 date --date="YYYYMMDD" +%s 』就能夠達(dá)到我們所想要的啰~如果您已經(jīng)寫(xiě)完了程序,對(duì)照底下的寫(xiě)法試看看:
[root@linux scripts]# vi sh10.sh
#!/bin/bash
# Program:
#? Tring to calculate your demobilization date at how many days?
# later...
# History:
# 2005/08/29 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

# 1. 告知使用者這支程序的用途,并且告知應(yīng)該如何輸入日期格式?
echo "This program will try to calculate :"
echo "How many days about your demobilization date..."
read -p "Please input your demobilization date (YYYYMMDD ex>20050401): " date2

# 2. 測(cè)試一下,這個(gè)輸入的內(nèi)容是否正確?利用正規(guī)表示法啰~
date_d=`echo $date2 |grep '[0-9]/{8/}'`
if [ "$date_d" == "" ]; then
echo "You input the wrong format of date...."
exit 1
fi

# 3. 開(kāi)始計(jì)算日期啰~
declare -i date_dem=`date --date="$date2" +%s`
declare -i date_now=`date +%s`
declare -i date_total_s=$(($date_dem-$date_now))
declare -i date_d=$(($date_total_s/60/60/24))
if [ "$date_total_s" -lt "0" ]; then
echo "You had been demobilization before: " $((-1*$date_d)) " ago"
else
declare -i date_h=$(($(($date_total_s-$date_d*60*60*24))/60/60))
echo "You will be demobilized after $date_d days and $date_h hours."
fi

?
瞧一瞧,這支程序可以幫您計(jì)算退伍日期呢~如果是已經(jīng)退伍的朋友, 還可以知道已經(jīng)退伍多久了~哈哈!很可愛(ài)吧~利用 date 算出自 1971/01/01 以來(lái)的總秒數(shù), 再與目前的總秒數(shù)來(lái)比對(duì),然后以一天的總秒數(shù) (60*60*24) 為基數(shù)去計(jì)算總?cè)諗?shù), 就能夠得知兩者的差異了~瞧~全部的動(dòng)作都沒(méi)有超出我們所學(xué)的范圍吧~ ^_^ 還能夠避免使用者輸入錯(cuò)誤的數(shù)字,所以多了一個(gè)正規(guī)表示法的判斷式呢~ 這個(gè)例子比較難,有興趣想要一探究竟的朋友,可以作一下課后練習(xí)題 關(guān)于計(jì)算生日的那一題喔!~加油!

?

--------------------------------------------------------------------------------
利用 case ..... esac 判斷

上個(gè)小節(jié)提到的『 if .... then .... fi 』對(duì)于變量的判斷中, 是以比對(duì)的方式來(lái)分辨的,如果符合狀態(tài)就進(jìn)行某些行為,并且透過(guò)較多層次 ( 就是 elif ... ) 的方式來(lái)進(jìn)行多個(gè)變量的程序代碼撰寫(xiě),譬如 sh08.sh 那個(gè)小程序,就是用這樣的方式來(lái)的啰。 好,那么萬(wàn)一我有多個(gè)既定的變量?jī)?nèi)容,例如 sh08.sh 當(dāng)中,我所需要的變量就是 "hello" 及空字符串兩個(gè), 那么我只要針對(duì)這兩個(gè)變量來(lái)設(shè)定狀況就好了對(duì)吧?!那么可以使用什么方式來(lái)設(shè)計(jì)呢? 呵呵~就用 case ... in .... esac 吧~,他的語(yǔ)法如下:
case $變量名稱 in
? "第一個(gè)變量?jī)?nèi)容")
程序段
;;
? "第二個(gè)變量?jī)?nèi)容")
程序段
;;
? *)
不包含第一個(gè)變量?jī)?nèi)容與第二個(gè)變量?jī)?nèi)容的其它程序執(zhí)行段
exit 1
;;
esac

?
要注意的是,這個(gè)語(yǔ)法是以 case 為開(kāi)頭,而以 esac 為結(jié)尾,啥?為何是 esac 呢?想一想,既然 if 的結(jié)尾是 fi ,那么 case 的結(jié)尾當(dāng)然就是將 case 倒著寫(xiě),自然就是 esac 啰~ ^_^,很好記吧~ 另外,每一個(gè)變量?jī)?nèi)容的程序段最后都需要兩個(gè)分號(hào) (;;) 來(lái)代表該程序段落的結(jié)束,這挺重要的喔! 至于為何需要有 * 這個(gè)變量?jī)?nèi)容在最后呢?這是因?yàn)?#xff0c;如果使用者不是輸入變量?jī)?nèi)容一或二時(shí), 我們可以告知使用者相關(guān)的信息啊!舉例來(lái)說(shuō),我們?nèi)绻麑?sh08.sh 改寫(xiě)的話, 他應(yīng)該會(huì)變成這樣喔!
[root@linux scripts]# vi sh08-2.sh
#!/bin/bash
# Program:
#? Show "Hello" from $1.... by using case .... esac
# History:
# 2005/08/29 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

case $1 in
? "hello")
echo "Hello, how are you ?"
;;
? "")
echo "You MUST input parameters, ex> $0 someword"
;;
? *)
echo "Usage $0 {hello}"
;;
esac

?
在上面這個(gè) sh08-2.sh 的案例當(dāng)中,如果你輸入『 sh sh08-2.sh test 』來(lái)執(zhí)行, 那么屏幕上就會(huì)出現(xiàn)『Usage sh08-2.sh {hello}』的字樣,告知執(zhí)行者僅能夠使用 hello 喔~ 這樣的方式對(duì)于需要某些固定字符串來(lái)執(zhí)行的變量?jī)?nèi)容就顯的更加的方便呢? 這種方式您真的要熟悉喔!這是因?yàn)橄到y(tǒng)的很多服務(wù)的啟動(dòng) scripts 都是使用這種寫(xiě)法的, 舉例來(lái)說(shuō),我們 Linux 的服務(wù)啟動(dòng)放置目錄是在 /etc/init.d/ 當(dāng)中,我已經(jīng)知道里頭有個(gè) syslog 的服務(wù),我想要重新啟動(dòng)這個(gè)服務(wù),可以這樣做:?
/etc/init.d/syslog restart
重點(diǎn)是那個(gè) restart 啦~如果您進(jìn)入 /etc/init.d/syslog 就會(huì)看到他使用的是 case 語(yǔ)法, 并且會(huì)規(guī)定某些既定的變量?jī)?nèi)容,你可以直接下達(dá) /etc/init.d/syslog , 該 script 就會(huì)告知你有哪些后續(xù)接的變量可以使用啰~方便吧! ^_^

一般來(lái)說(shuō),使用『 case $變量 in 』這個(gè)語(yǔ)法中,當(dāng)中的那個(gè) $變量 大致有兩種取得的方式:
直接下達(dá)式:例如上面提到的,利用『 script.sh variable 』 的方式來(lái)直接給予 $1 這個(gè)變量的內(nèi)容,這也是在 /etc/init.d 目錄下大多數(shù)程序的設(shè)計(jì)方式。?
交互式:透過(guò) read 這個(gè)指令來(lái)讓使用者輸入變量的內(nèi)容。
這么說(shuō)或許您的感受性還不高,好,我們直接寫(xiě)個(gè)程序來(lái)玩玩:讓使用者能夠輸入 one, two, three , 并且將使用者的變量顯示到屏幕上,如果不是 one, two, three 時(shí),就告知使用者僅有這三種選擇。
[root@linux scripts]# vi sh11.sh
#!/bin/bash
# Program:
#? Let user input one, two, three and show in screen.
# History:
# 2005/08/29 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

echo "This program will print your selection !"
# read -p "Input your choice: " choice
# case $choice in
case $1 in
? "one")
echo "Your choice is ONE"
;;
? "two")
echo "Your choice is TWO"
;;
? "three")
echo "Your choice is THREE"
;;
? *)
echo "Usage {one|two|three}"
;;
esac

?
此時(shí),您可以使用『 sh sh11.sh two 』的方式來(lái)下達(dá)指令,就可以收到相對(duì)應(yīng)的響應(yīng)了。 上面使用的是直接下達(dá)的方式,而如果使用的是交互式時(shí),那么將上面第 10, 11 行的 "#" 拿掉, 并將 12 行加上批注 (#),就可以讓使用者輸入?yún)?shù)啰~這樣是否很有趣啊?!

?

--------------------------------------------------------------------------------
利用 function 功能

什么是『函數(shù) (function)』功能啊?簡(jiǎn)單的說(shuō),其實(shí), 函數(shù)可以在 shell script 當(dāng)中做出一個(gè)類(lèi)似自訂執(zhí)行指令的東西,最大的功能是, 可以簡(jiǎn)化我們很多的程序代碼~舉例來(lái)說(shuō),上面的 sh11.sh 當(dāng)中,每個(gè)輸入結(jié)果 one, two, three 其實(shí)輸出的內(nèi)容都一樣啊~那么我就可以使用 function 來(lái)簡(jiǎn)化了! function 的語(yǔ)法是這樣的:
function fname() {
程序段
}

?
那個(gè) fname 就是我們的自訂的執(zhí)行指令名稱~而程序段就是我們要他執(zhí)行的內(nèi)容了。 要注意的是,在 shell script 當(dāng)中, function 的設(shè)定一定要在程序的最前面, 這樣才能夠在執(zhí)行時(shí)被找到可用的程序段喔!好~我們將 sh11.sh 改寫(xiě)一下:
[root@linux scripts]# vi sh11-2.sh
#!/bin/bash
# Program:
#? Let user input one, two, three and show in screen.
# History:
# 2005/08/29 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

function printit(){
echo -n "Your choice is "
}

echo "This program will print your selection !"
case $1 in
? "one")
printit; echo $1 | tr 'a-z' 'A-Z'
;;
? "two")
printit; echo $1 | tr 'a-z' 'A-Z'
;;
? "three")
printit; echo $1 | tr 'a-z' 'A-Z'
;;
? *)
echo "Usage {one|two|three}"
;;
esac

?
以上面的例子來(lái)說(shuō),我做了一個(gè)函數(shù)名稱為 printif ,所以,當(dāng)我在后續(xù)的程序段里面, 只要執(zhí)行 printit 的話,就表示我的 shell script 要去執(zhí)行『 function printit .... 』 里面的那幾個(gè)程序段落啰! 當(dāng)然啰,上面這個(gè)例子舉得太簡(jiǎn)單了,所以您不會(huì)覺(jué)得 function 有什么好厲害的, 不過(guò),如果某些程序代碼一再地在 script 當(dāng)中重復(fù)時(shí),這個(gè) function 可就重要的多啰~ 不但可以簡(jiǎn)化程序代碼,而且可以做成類(lèi)似『模塊』的玩意兒,真的很棒啦!

另外, function 也是擁有內(nèi)建變量的~他的內(nèi)建變量與 shell script 很類(lèi)似, 函數(shù)名稱代表示 $0 ,而后續(xù)接的變量也是以 $1, $2... 來(lái)取代的~ 這里很容易搞錯(cuò)喔~因?yàn)椤?function fname() { 程序段 } 』內(nèi)的 $0, $1... 等等與 shell script 的 $0 是不同的。以上面 sh11-2.sh 來(lái)說(shuō),假如我下達(dá):『 sh sh11-2.sh one 』 這表示在 shell script 內(nèi)的 $1 為 "one" 這個(gè)字符串。但是在 printit() 內(nèi)的 $1 則與這個(gè) one 無(wú)關(guān)。 我們將上面的例子再次的改寫(xiě)一下,讓您更清楚!
[root@linux scripts]# vi sh11-3.sh
#!/bin/bash
# Program:
#? Let user input one, two, three and show in screen.
# History:
# 2005/08/29 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

function printit(){
echo "Your choice is $1"
}

echo "This program will print your selection !"
case $1 in
? "one")
printit 1
;;
? "two")
printit 2
;;
? "three")
printit 3
;;
? *)
echo "Usage {one|two|three}"
;;
esac

?
在上面的例子當(dāng)中,如果您輸入『 sh sh11-3.sh one 』就會(huì)出現(xiàn)『 Your choice is 1 』的字樣~ 為什么是 1 呢?因?yàn)樵诔绦蚨温洚?dāng)中,我們是寫(xiě)了『 printit 1 』那個(gè) 1 就會(huì)成為 function 當(dāng)中的 $1 喔~ 這樣是否理解呢? function 本身其實(shí)比較困難一點(diǎn),如果您還想要進(jìn)行其它的撰寫(xiě)的話。 不過(guò),我們僅是想要更加了解 shell script 而已,所以,這里看看即可~了解原理就好啰~ ^_^?

--------------------------------------------------------------------------------
循環(huán) (loop)

除了 if...then...fi 這種條件判斷式之外,循環(huán)可能是程序當(dāng)中最重要的一環(huán)了~ 循環(huán)可以不斷的執(zhí)行某個(gè)程序段落,直到使用者設(shè)定的條件達(dá)成為止。 所以,重點(diǎn)是那個(gè)『條件的達(dá)成』是什么。底下我們就來(lái)談一談:


--------------------------------------------------------------------------------
while do done, until do done

一般來(lái)說(shuō),循環(huán)最常見(jiàn)的就是底下這兩種狀態(tài)了:
while [ condition ]
do
程序段落
done

?
這種方式中, while 是『當(dāng)....時(shí)』,所以,這種方式說(shuō)的是『當(dāng) condition 條件成立時(shí),就進(jìn)行循環(huán),直到 condition 的條件不成立才停止』的意思。
until [ condition ]
do
程序段落
done

?
這種方式恰恰與 while 相反,它說(shuō)的是『當(dāng) condition 條件成立時(shí),就終止循環(huán), 否則就持續(xù)進(jìn)行循環(huán)的程序段。』是否剛好相反啊~我們以 while 來(lái)做個(gè)簡(jiǎn)單的練習(xí)好了。 假設(shè)我要讓使用者輸入 yes 或者是 YES 才結(jié)束程序的執(zhí)行,否則就一直進(jìn)行告知使用者輸入字符串。
[root@linux scripts]# vi sh12.sh
#!/bin/bash
# Program:
#? Use loop to try find your input.
# History:
# 2005/08/29 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

while [ "$yn" != "yes" ] && [ "$yn" != "YES" ]
do
read -p "Please input yes/YES to stop this program: " yn
done

?
上面這個(gè)例題的說(shuō)明是『當(dāng) $yn 這個(gè)變量不是 "yes" 且 $yn 也不是 "YES" 時(shí),才進(jìn)行循環(huán)內(nèi)的程序。』 而如果 $yn 是 "yes" 或 "YES" 時(shí),就會(huì)離開(kāi)循環(huán)啰~那如果使用 until 呢?呵呵有趣啰~ 他的條件會(huì)變成這樣:
[root@linux scripts]# vi sh12-2.sh
#!/bin/bash
# Program:
#? Use loop to try find your input.
# History:
# 2005/08/29 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

until [ "$yn" == "yes" ] || [ "$yn" == "YES" ]
do
read -p "Please input yes/YES to stop this program: " yn
done

?
仔細(xì)比對(duì)一下這兩個(gè)東西有啥不同喔! ^_^再來(lái),如果我想要計(jì)算 1+2+3+....+100 這個(gè)數(shù)據(jù)呢? 利用循環(huán)啊~他是這樣的:
[root@linux scripts]# vi sh13.sh
#!/bin/bash
# Program:
#? Try to use loop to calculate the result "1+2+3...+100"
# History:
# 2005/08/29 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

s=0
i=0
while [ "$i" != "100" ]
do
i=$(($i+1))
s=$(($s+$i))
done
echo "The result of '1+2+3+...+100' is ==> $s"

?
嘿嘿!當(dāng)您執(zhí)行了『 sh sh13.sh 』之后,就可以得到 5050 這個(gè)數(shù)據(jù)才對(duì)啊!這樣瞭呼~ 那么讓您自行做一下,如果想要讓使用者自行輸入一個(gè)數(shù)字,讓程序由 1+2+... 直到您輸入的數(shù)字為止, 該如何撰寫(xiě)呢?應(yīng)該很簡(jiǎn)單吧?!答案可以參考一下習(xí)題練習(xí)里面的一題喔!

?

--------------------------------------------------------------------------------
for...do....done

相對(duì)于 while, until 的循環(huán)方式是必須要『符合某個(gè)條件』的狀態(tài), for 這種語(yǔ)法,則是『 已經(jīng)知道要進(jìn)行幾次循環(huán)』的狀態(tài)!他的語(yǔ)法是:
for (( 初始值; 限制值; 執(zhí)行步階 ))
do
程序段
done

?
這種語(yǔ)法適合于數(shù)值方式的運(yùn)算當(dāng)中,在 for 后面的括號(hào)內(nèi)的三串內(nèi)容意義為:
初始值:某個(gè)變量在循環(huán)當(dāng)中的起始值,直接以類(lèi)似 i=1 設(shè)定好;?
限制值:當(dāng)變量的值在這個(gè)限制值的范圍內(nèi),就繼續(xù)進(jìn)行循環(huán)。例如 i<=100;?
執(zhí)行步階:每作一次循環(huán)時(shí),變量的變化量。例如 i=i+1。
值得注意的是,在『執(zhí)行步階』的設(shè)定上,如果每次增加 1 ,則可以使用類(lèi)似『i++』的方式,亦即是 i 每次循環(huán)都會(huì)增加一的意思。好,我們以這種方式來(lái)進(jìn)行 1 累加到 100 的循環(huán)吧!
[root@linux scripts]# vi sh14.sh
#!/bin/bash
# Program:
#? Try do calculate 1+2+....+100
# History:
# 2005/08/29 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

s=0
for (( i=1; i<=100; i=i+1 ))
do
s=$(($s+$i))
done
echo "The result of '1+2+3+...+100' is ==> $s"

?
一樣也是很簡(jiǎn)單吧!利用這個(gè) for 則可以直接限制循環(huán)要進(jìn)行幾次呢!這么好用的東西難道只能在數(shù)值方面動(dòng)作? 當(dāng)然不是啦~我們還可以利用底下的方式來(lái)進(jìn)行非數(shù)字方面的循環(huán)運(yùn)作喔!
for $var in con1 con2 con3 ...
do
程序段
done

?
以上面的例子來(lái)說(shuō),這個(gè) $var 的變量?jī)?nèi)容在循環(huán)工作時(shí):
第一次循環(huán)時(shí), $var 的內(nèi)容為 con1 ;?
第二次循環(huán)時(shí), $var 的內(nèi)容為 con2 ;?
第三次循環(huán)時(shí), $var 的內(nèi)容為 con3 ;?
....
我們可以做個(gè)簡(jiǎn)單的練習(xí)。假設(shè)我有三種動(dòng)物,分別是 dog, cat, elephant 三種, 我想每一行都輸出這樣:『There are dogs...』之類(lèi)的字樣,則可以:
[root@linux scripts]# vi sh15.sh
#!/bin/bash
# Program:
#? Using for .... loop to print 3 animal?
# History:
# 2005/08/29 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

for animal in dog cat elephant
do
echo "There are ""$animal""s.... "
done

?
很簡(jiǎn)單是吧! ^_^。好了,那么如果我想要讓使用者輸入某個(gè)目錄, 然后我找出某目錄內(nèi)的文件名的權(quán)限呢?又該如何是好?呵呵!可以這樣做啦~
[root@linux scripts]# vi sh16.sh
#!/bin/bash
# Program:
#? let user input a directory and find the whole file's permission.
# History:
# 2005/08/29 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

# 1. 先看看這個(gè)目錄是否存在啊?
read -p "Please input a directory: " dir
if [ "$dir" == "" ] || [ ! -d "$dir" ]; then
echo "The $dir is NOT exist in your system."
exit 1
fi

# 2. 開(kāi)始測(cè)試檔案啰~
filelist=`ls $dir`
for filename in $filelist
do
perm=""
test -r "$dir/$filename" && perm="$perm readable"
test -w "$dir/$filename" && perm="$perm writable"
test -x "$dir/$filename" && perm="$perm executable"
echo "The file $dir/$filename's permission is $perm "
done

?
呵呵!很有趣的例子吧~利用這種方式,您可以很輕易的來(lái)處理一些檔案的特性呢~ 我們循環(huán)就介紹到這里了~其它更多的應(yīng)用,就得視您的需求來(lái)玩啰~。?

--------------------------------------------------------------------------------
shell script 的追蹤與 debug

scripts 在執(zhí)行之前,最怕的就是出現(xiàn)問(wèn)題了!那么我們?nèi)绾?debug 呢?有沒(méi)有辦法不需要透過(guò)直接執(zhí)行該 scripts 就可以來(lái)判斷是否有問(wèn)題呢!?呵呵! 當(dāng)然是有的!我們就直接以 bash 的相關(guān)參數(shù)來(lái)進(jìn)行判斷吧!
[root@linux ~]# sh [-nvx] scripts.sh
參數(shù):
-n? :不要執(zhí)行 script,僅查詢語(yǔ)法的問(wèn)題;
-v? :再執(zhí)行 sccript 前,先將 scripts 的內(nèi)容輸出到屏幕上;
-x? :將使用到的 script 內(nèi)容顯示到屏幕上,這是很有用的參數(shù)!
范例:

范例一:測(cè)試 sh16.sh 有無(wú)語(yǔ)法的問(wèn)題?
[root@linux ~]# sh -n sh16.sh?
# 若語(yǔ)法沒(méi)有問(wèn)題,則不會(huì)顯示任何信息!

范例二:將 sh15.sh 的執(zhí)行過(guò)程全部列出來(lái)~
[root@linux ~]# sh -x sh15.sh?
+ PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/home/vbird/bin
+ export PATH
+ for animal in dog cat elephant
+ echo 'There are dogs.... '
There are dogs....
+ for animal in dog cat elephant
+ echo 'There are cats.... '
There are cats....
+ for animal in dog cat elephant
+ echo 'There are elephants.... '
There are elephants....
# 使用 -x 真的是追蹤 script 的好方法,他可以將所有有執(zhí)行的程序段在執(zhí)行前列出來(lái),
# 如果是程序段落,則輸出時(shí),最前面會(huì)加上 + 字號(hào),表示他是程序代碼而已,
# 實(shí)際的輸出則與 standard output 有關(guān)啊~如上所示。

?
在上面的范例二當(dāng)中,我們可以透過(guò)這個(gè)簡(jiǎn)單的參數(shù) -x 來(lái)達(dá)成 debug 的目的,這可是一個(gè)不可多得的參數(shù), 通常如果您執(zhí)行 script 卻發(fā)生問(wèn)題時(shí),利用這個(gè) -x 參數(shù),就可以知道問(wèn)題是發(fā)生在哪一行上面了!

熟悉 sh 的用法,將可以使您在管理 Linux 的過(guò)程中得心應(yīng)手!至于在 Shell scripts 的學(xué)習(xí)方法上面,需要『多看、多模仿、并加以修改成自己的樣式!』 是最快的學(xué)習(xí)手段了!網(wǎng)絡(luò)上有相當(dāng)多的朋友在開(kāi)發(fā)一些相當(dāng)有用的 scripts ,若是您可以將對(duì)方的 scripts 拿來(lái),并且改成適合自己主機(jī)的樣子!那么學(xué)習(xí)的效果會(huì)是最快的呢!

另外,我們 Linux 系統(tǒng)本來(lái)就有很多的啟動(dòng) script ,如果您想要知道每個(gè) script 所代表的功能是什么? 可以直接以 vi 進(jìn)入該 script 去查閱一下,通常立刻就知道該 script 的目的了。 舉例來(lái)說(shuō),我們的 Linux 里頭有個(gè)文件名稱為: /etc/init.d/portmap ,這個(gè) script 是干嘛用的? 利用 vi 去查閱最前面的幾行字,他出現(xiàn)如下信息:
# description: The portmapper manages RPC connections, which are used by /
#????????????? protocols such as NFS and NIS. The portmap server must be /
#????????????? running on machines which act as servers for protocols which /
#????????????? make use of the RPC mechanism.
# processname: portmap

?
簡(jiǎn)單的說(shuō),他是被用在 NFS 與 NIS 上面的一個(gè)啟動(dòng) RPC 的 script , 然后我們?cè)倮?http://www.google.com.tw 去搜尋一下 NFS, NIS 與 RPC , 立刻就能夠知道這個(gè) script 的功能啰~所以,下次您發(fā)現(xiàn)不明的 script 時(shí), 如果是系統(tǒng)提供的,那么利用這個(gè)檢查的方式,一定可以約略了解的啦! 加油的啰~ ^_^

另外,本章所有的范例都可以在 http://linux.vbird.org/linux_basic/0340bashshell-scripts/scripts.tgz 里頭找到喔!加油~

?

--------------------------------------------------------------------------------
本章習(xí)題練習(xí)
( 要看答案請(qǐng)將鼠標(biāo)移動(dòng)到『答:』底下的空白處,按下左鍵圈選空白處即可察看 )?
請(qǐng)建立一支 script ,當(dāng)你執(zhí)行該 script 的時(shí)候,該 script 可以顯示: 1. 你目前的身份 (用 whoami ) 2. 你目前所在的目錄 (用 pwd)?
#!/bin/bash
echo -e "Your name is ==> `whoami`"
echo -e "The current directory is ==> `pwd`"

請(qǐng)自行建立一支程序,該程序可以用來(lái)計(jì)算『您還有幾天可以過(guò)生日』啊???
#!/bin/bash
read -p "Pleas input your birthday (MMDD, ex> 0709): " bir
now=`date +%m%d`
if [ "$bir" == "$now" ]; then
echo "Happy Birthday to you!!!"
elif [ "$bir" -gt "$now" ]; then
year=`date +%Y`
total_d=$(($((`date --date="$year$bir" +%s`-`date +%s`))/60/60/24))
echo "Your birthday will be $total_d later"
else
year=$((`date +%Y`+1))
total_d=$(($((`date --date="$year$bir" +%s`-`date +%s`))/60/60/24))
echo "Your birthday will be $total_d later"
fi

讓使用者輸入一個(gè)數(shù)字,程序可以由 1+2+3... 一直累加到使用者輸入的數(shù)字為止。?
#!/bin/bash
read -p "Please input an integer number: " number
i=0
s=0
while [ "$i" != "$number" ]
do
i=$(($i+1))
s=$(($s+$i))
done
echo "the result of '1+2+3+...$number' is ==> $s"

撰寫(xiě)一支程序,他的作用是: 1.) 先查看一下 /root/test/logical 這個(gè)名稱是否存在; 2.) 若不存在,則建立一個(gè)檔案,使用 touch 來(lái)建立,建立完成后離開(kāi); 3.) 如果存在的話,判斷該名稱是否為檔案,若為檔案則將之刪除后建立一個(gè)檔案,檔名為 logical ,之后離開(kāi); 4.) 如果存在的話,而且該名稱為目錄,則移除此目錄!?
#!/bin/bash
if [ ! -e logical ]; then
touch logical
echo "Just make a file logical"
exit 1
elif [ -e logical ] && [ -f logical ]; then
rm logical
mkdir logical
echo "remove file ==> logical"
echo "and make directory logical"
exit 1
elif [ -e logical ] && [ -d logical ]; then
rm -rf logical
echo "remove directory ==> logical"
exit 1
else
echo "Does here have anything?"
fi

我們知道 /etc/passwd 里面以 : 來(lái)分隔,第一欄為賬號(hào)名稱。請(qǐng)寫(xiě)一只程序,可以將 /etc/passwd 的第一欄取出,而且每一欄都以一行字符串『The 1 account is "root" 』來(lái)顯示,那個(gè) 1 表示行數(shù)。?
#!/bin/bash
accounts=`cat /etc/passwd | cut -d':' -f1`
for account in $accounts
do
declare -i i=$i+1
echo "The $i account is /"$account/" "
done

http://www.chinaunix.net/jh/24/628472.html

總結(jié)

以上是生活随笔為你收集整理的shell 生活0806012145的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

亚洲天堂2017无码中文 | 国产在线精品一区二区三区直播 | 东京一本一道一二三区 | 国产真实乱对白精彩久久 | 国产成人无码一二三区视频 | 在线播放亚洲第一字幕 | 久久久久亚洲精品中文字幕 | 玩弄人妻少妇500系列视频 | 熟妇女人妻丰满少妇中文字幕 | 日日碰狠狠丁香久燥 | 国内精品久久毛片一区二区 | 午夜无码区在线观看 | 精品国产一区二区三区av 性色 | 国产精品久久久久久亚洲影视内衣 | 无码av免费一区二区三区试看 | 久久成人a毛片免费观看网站 | 玩弄中年熟妇正在播放 | 国产成人综合在线女婷五月99播放 | 国产无遮挡吃胸膜奶免费看 | 国产艳妇av在线观看果冻传媒 | 久久久久久a亚洲欧洲av冫 | 欧美日本精品一区二区三区 | 国产手机在线αⅴ片无码观看 | 性开放的女人aaa片 | 领导边摸边吃奶边做爽在线观看 | 国产精品二区一区二区aⅴ污介绍 | 久久99久久99精品中文字幕 | 亚洲精品中文字幕 | 久久国产36精品色熟妇 | 嫩b人妻精品一区二区三区 | 欧美人与动性行为视频 | 日本肉体xxxx裸交 | 99久久99久久免费精品蜜桃 | 国产做国产爱免费视频 | 四虎国产精品一区二区 | 国产人妖乱国产精品人妖 | 中文字幕亚洲情99在线 | 免费男性肉肉影院 | 狂野欧美激情性xxxx | 亚洲aⅴ无码成人网站国产app | 一本色道久久综合亚洲精品不卡 | 国内少妇偷人精品视频免费 | 色情久久久av熟女人妻网站 | 无码人妻少妇伦在线电影 | 鲁鲁鲁爽爽爽在线视频观看 | 中文字幕乱妇无码av在线 | 久久久久亚洲精品男人的天堂 | 国产亚av手机在线观看 | 日韩精品a片一区二区三区妖精 | 欧美精品无码一区二区三区 | 久久精品99久久香蕉国产色戒 | 久久久久久九九精品久 | 亚洲中文字幕在线无码一区二区 | 午夜肉伦伦影院 | 色综合天天综合狠狠爱 | 亚洲性无码av中文字幕 | 日韩无套无码精品 | 88国产精品欧美一区二区三区 | 无码人妻av免费一区二区三区 | 极品嫩模高潮叫床 | 欧美精品在线观看 | 无码av免费一区二区三区试看 | 亚洲精品一区二区三区婷婷月 | 狠狠综合久久久久综合网 | 婷婷综合久久中文字幕蜜桃三电影 | 久久精品中文字幕一区 | 55夜色66夜色国产精品视频 | 成人无码影片精品久久久 | 天堂在线观看www | 人妻与老人中文字幕 | 日本成熟视频免费视频 | 国产一区二区三区四区五区加勒比 | 牲欲强的熟妇农村老妇女视频 | aⅴ在线视频男人的天堂 | 亚洲呦女专区 | 亚洲精品无码人妻无码 | 国产免费久久精品国产传媒 | 日本精品人妻无码免费大全 | 无套内谢老熟女 | 亚洲欧美精品伊人久久 | 国产农村乱对白刺激视频 | 扒开双腿吃奶呻吟做受视频 | 免费国产成人高清在线观看网站 | 又湿又紧又大又爽a视频国产 | 无码人中文字幕 | 国产区女主播在线观看 | 久久精品一区二区三区四区 | 国产av一区二区三区最新精品 | 18无码粉嫩小泬无套在线观看 | 99久久精品午夜一区二区 | 日韩欧美中文字幕公布 | 老子影院午夜精品无码 | 少妇被黑人到高潮喷出白浆 | 鲁一鲁av2019在线 | 伊人久久大香线蕉午夜 | 亚洲狠狠色丁香婷婷综合 | 亚洲精品中文字幕 | 亚洲国产欧美日韩精品一区二区三区 | 欧美日韩在线亚洲综合国产人 | 亚洲国产精品久久久久久 | 成人欧美一区二区三区黑人免费 | 欧美日本精品一区二区三区 | 亚洲乱码中文字幕在线 | 久久久中文字幕日本无吗 | 亚洲欧美日韩成人高清在线一区 | 欧美亚洲国产一区二区三区 | 97夜夜澡人人双人人人喊 | 十八禁真人啪啪免费网站 | 少妇性l交大片欧洲热妇乱xxx | 日日鲁鲁鲁夜夜爽爽狠狠 | 亚洲 日韩 欧美 成人 在线观看 | 国产无遮挡又黄又爽又色 | 亚洲日韩精品欧美一区二区 | www国产亚洲精品久久网站 | 成人片黄网站色大片免费观看 | 国产成人无码av片在线观看不卡 | 欧美三级不卡在线观看 | 人妻少妇精品久久 | 国内老熟妇对白xxxxhd | 好爽又高潮了毛片免费下载 | 免费无码午夜福利片69 | 无码av岛国片在线播放 | 1000部啪啪未满十八勿入下载 | 亚洲成av人影院在线观看 | 亚洲小说春色综合另类 | 国产婷婷色一区二区三区在线 | 久久国产36精品色熟妇 | 丰满妇女强制高潮18xxxx | 国产成人无码av一区二区 | 狠狠色噜噜狠狠狠7777奇米 | 又粗又大又硬毛片免费看 | 成人无码精品1区2区3区免费看 | 玩弄人妻少妇500系列视频 | 久久久久久九九精品久 | 国内丰满熟女出轨videos | 国产成人一区二区三区在线观看 | 香蕉久久久久久av成人 | 成人无码精品一区二区三区 | 99精品国产综合久久久久五月天 | 欧美xxxxx精品 | 九月婷婷人人澡人人添人人爽 | 久久天天躁夜夜躁狠狠 | 无码人妻黑人中文字幕 | 色窝窝无码一区二区三区色欲 | 无套内射视频囯产 | 麻豆国产人妻欲求不满谁演的 | 欧美自拍另类欧美综合图片区 | 国产一区二区不卡老阿姨 | 激情五月综合色婷婷一区二区 | 亚洲一区二区三区无码久久 | 曰本女人与公拘交酡免费视频 | 久久久精品456亚洲影院 | 成 人 网 站国产免费观看 | 人妻无码αv中文字幕久久琪琪布 | 国内精品九九久久久精品 | 亚洲中文字幕乱码av波多ji | 乱中年女人伦av三区 | 草草网站影院白丝内射 | 99久久久无码国产aaa精品 | 在线播放免费人成毛片乱码 | 久久亚洲精品成人无码 | 熟妇人妻无码xxx视频 | 欧美乱妇无乱码大黄a片 | 精品人妻人人做人人爽夜夜爽 | 最新国产麻豆aⅴ精品无码 | 乱人伦人妻中文字幕无码 | 国内少妇偷人精品视频免费 | 成人一区二区免费视频 | 欧美丰满熟妇xxxx性ppx人交 | 久久人妻内射无码一区三区 | 中文字幕av无码一区二区三区电影 | 亚洲精品欧美二区三区中文字幕 | 亚洲精品午夜国产va久久成人 | 曰韩无码二三区中文字幕 | 国内少妇偷人精品视频免费 | 18无码粉嫩小泬无套在线观看 | 黑人大群体交免费视频 | 一本久久a久久精品亚洲 | 大色综合色综合网站 | 日本熟妇人妻xxxxx人hd | 成年美女黄网站色大免费视频 | 国内丰满熟女出轨videos | 欧美日本免费一区二区三区 | 性生交大片免费看l | 久久99精品国产麻豆蜜芽 | 正在播放老肥熟妇露脸 | 4hu四虎永久在线观看 | 天天躁夜夜躁狠狠是什么心态 | 久久婷婷五月综合色国产香蕉 | 极品嫩模高潮叫床 | 无码一区二区三区在线 | 99久久人妻精品免费二区 | 55夜色66夜色国产精品视频 | 久久亚洲日韩精品一区二区三区 | 日本饥渴人妻欲求不满 | 亚洲国产欧美国产综合一区 | 青青久在线视频免费观看 | 欧美丰满老熟妇xxxxx性 | 牲欲强的熟妇农村老妇女视频 | 国产人成高清在线视频99最全资源 | 亚洲综合伊人久久大杳蕉 | 成人欧美一区二区三区 | 久久久无码中文字幕久... | 亚洲精品成a人在线观看 | 丰满人妻精品国产99aⅴ | 国产乱人偷精品人妻a片 | a在线观看免费网站大全 | 亚洲男人av天堂午夜在 | 九九在线中文字幕无码 | 国产成人无码av片在线观看不卡 | 性做久久久久久久免费看 | 捆绑白丝粉色jk震动捧喷白浆 | 男女猛烈xx00免费视频试看 | 久久久精品成人免费观看 | 欧美激情一区二区三区成人 | 午夜丰满少妇性开放视频 | 色 综合 欧美 亚洲 国产 | 狂野欧美性猛xxxx乱大交 | 黑人大群体交免费视频 | 装睡被陌生人摸出水好爽 | 色五月五月丁香亚洲综合网 | 少妇的肉体aa片免费 | 亚洲熟妇色xxxxx欧美老妇y | 红桃av一区二区三区在线无码av | 国产精品久久久久久亚洲影视内衣 | 亚洲自偷自拍另类第1页 | 波多野结衣 黑人 | 日本又色又爽又黄的a片18禁 | 中文久久乱码一区二区 | 亚洲成av人片在线观看无码不卡 | 午夜无码人妻av大片色欲 | 好男人www社区 | 久久天天躁夜夜躁狠狠 | 日本va欧美va欧美va精品 | 青青青爽视频在线观看 | 性色av无码免费一区二区三区 | 精品久久久久久亚洲精品 | а√资源新版在线天堂 | 噜噜噜亚洲色成人网站 | √天堂中文官网8在线 | 精品国产av色一区二区深夜久久 | 国色天香社区在线视频 | 日产精品99久久久久久 | 少妇人妻av毛片在线看 | 亚洲一区二区三区含羞草 | 在线a亚洲视频播放在线观看 | 蜜臀av无码人妻精品 | 欧美 亚洲 国产 另类 | 午夜熟女插插xx免费视频 | 成人精品一区二区三区中文字幕 | 性欧美牲交在线视频 | 色婷婷综合激情综在线播放 | 水蜜桃亚洲一二三四在线 | 亚洲国产午夜精品理论片 | 亚洲精品综合五月久久小说 | 久久久久久国产精品无码下载 | 无码中文字幕色专区 | 国产人妻精品一区二区三区 | 亚洲精品中文字幕 | 高潮毛片无遮挡高清免费视频 | 成人亚洲精品久久久久 | 精品国产一区二区三区四区在线看 | 精品无码av一区二区三区 | 亚洲综合久久一区二区 | 欧美日韩一区二区免费视频 | 亚洲色大成网站www国产 | 鲁鲁鲁爽爽爽在线视频观看 | 东北女人啪啪对白 | 国产人妻人伦精品 | 精品国产乱码久久久久乱码 | 精品成在人线av无码免费看 | 精品无码成人片一区二区98 | 妺妺窝人体色www婷婷 | 美女张开腿让人桶 | 在线天堂新版最新版在线8 | 成熟人妻av无码专区 | 国产精品久久久久久亚洲影视内衣 | 99久久99久久免费精品蜜桃 | 国产精品成人av在线观看 | 日韩欧美中文字幕在线三区 | 国产精品高潮呻吟av久久 | √天堂资源地址中文在线 | 一本久道高清无码视频 | 亚洲综合精品香蕉久久网 | 国产精品美女久久久久av爽李琼 | 亚洲区欧美区综合区自拍区 | 成人aaa片一区国产精品 | 日韩精品无码一区二区中文字幕 | 亚洲色大成网站www国产 | 131美女爱做视频 | 亚洲综合无码一区二区三区 | 国产精品亚洲а∨无码播放麻豆 | 亚洲a无码综合a国产av中文 | 99久久人妻精品免费二区 | 少妇无套内谢久久久久 | 亚洲s码欧洲m码国产av | 99视频精品全部免费免费观看 | 亚洲一区二区三区在线观看网站 | 国产在线一区二区三区四区五区 | 狂野欧美性猛交免费视频 | 免费网站看v片在线18禁无码 | 人妻尝试又大又粗久久 | 国产深夜福利视频在线 | 扒开双腿疯狂进出爽爽爽视频 | 荫蒂被男人添的好舒服爽免费视频 | 国产亚洲欧美日韩亚洲中文色 | 亚洲日本一区二区三区在线 | 伊人久久婷婷五月综合97色 | 精品无码一区二区三区爱欲 | 爱做久久久久久 | 国产精品第一国产精品 | 无码国产乱人伦偷精品视频 | 熟女少妇在线视频播放 | 高清国产亚洲精品自在久久 | 男人扒开女人内裤强吻桶进去 | 国产肉丝袜在线观看 | 国产在线无码精品电影网 | 午夜福利一区二区三区在线观看 | 老头边吃奶边弄进去呻吟 | 超碰97人人射妻 | 亚洲中文无码av永久不收费 | 亚洲国产精品毛片av不卡在线 | 久久午夜无码鲁丝片午夜精品 | 国产成人无码区免费内射一片色欲 | 亚洲va欧美va天堂v国产综合 | 人人澡人人透人人爽 | www国产亚洲精品久久网站 | 国产精品自产拍在线观看 | 国产特级毛片aaaaaaa高清 | 国产激情一区二区三区 | 亚洲精品综合五月久久小说 | 亚洲精品久久久久久久久久久 | 亚洲精品www久久久 | 国产成人一区二区三区别 | 亚洲精品欧美二区三区中文字幕 | 国精产品一区二区三区 | 久久午夜无码鲁丝片午夜精品 | 啦啦啦www在线观看免费视频 | 丰满少妇弄高潮了www | 成年美女黄网站色大免费视频 | 免费人成网站视频在线观看 | 人人爽人人爽人人片av亚洲 | 人人妻人人藻人人爽欧美一区 | 亚洲精品无码人妻无码 | 亚洲精品成a人在线观看 | 强开小婷嫩苞又嫩又紧视频 | 久久亚洲精品成人无码 | 国产精品欧美成人 | 天堂一区人妻无码 | 人人澡人人透人人爽 | 亚洲精品久久久久久久久久久 | 国产成人综合美国十次 | 国产精品久久久久7777 | 婷婷六月久久综合丁香 | 日韩精品一区二区av在线 | 18无码粉嫩小泬无套在线观看 | 伊人久久大香线蕉午夜 | 日本一区二区三区免费播放 | 久久久中文字幕日本无吗 | 偷窥村妇洗澡毛毛多 | 男女下面进入的视频免费午夜 | 性欧美疯狂xxxxbbbb | 最近的中文字幕在线看视频 | 国产97在线 | 亚洲 | 中文毛片无遮挡高清免费 | 国产精品亚洲lv粉色 | 欧美三级不卡在线观看 | 免费国产成人高清在线观看网站 | 玩弄少妇高潮ⅹxxxyw | 国产一区二区三区精品视频 | 欧美野外疯狂做受xxxx高潮 | 亚洲日韩av一区二区三区四区 | 国产成人精品三级麻豆 | 欧美性生交活xxxxxdddd | 亚洲一区二区三区四区 | 乱人伦人妻中文字幕无码久久网 | 自拍偷自拍亚洲精品被多人伦好爽 | 伊人久久大香线蕉av一区二区 | 日欧一片内射va在线影院 | 国产精品国产自线拍免费软件 | 男女爱爱好爽视频免费看 | 中文久久乱码一区二区 | 妺妺窝人体色www在线小说 | 色一情一乱一伦一视频免费看 | 中文无码成人免费视频在线观看 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 人妻少妇精品视频专区 | 欧美老妇交乱视频在线观看 | 中文字幕人成乱码熟女app | 漂亮人妻洗澡被公强 日日躁 | 中文无码成人免费视频在线观看 | 男女下面进入的视频免费午夜 | 亚洲色在线无码国产精品不卡 | 色偷偷人人澡人人爽人人模 | 国产精品二区一区二区aⅴ污介绍 | 99er热精品视频 | 一本大道久久东京热无码av | 高清国产亚洲精品自在久久 | 成人影院yy111111在线观看 | 国产精品国产三级国产专播 | 国产又爽又猛又粗的视频a片 | 国内揄拍国内精品少妇国语 | 高潮喷水的毛片 | 免费无码午夜福利片69 | 一本久道高清无码视频 | 亚洲 a v无 码免 费 成 人 a v | 国产免费久久久久久无码 | 丰满少妇人妻久久久久久 | 久久久无码中文字幕久... | 宝宝好涨水快流出来免费视频 | 婷婷五月综合激情中文字幕 | 无码乱肉视频免费大全合集 | 色五月五月丁香亚洲综合网 | 成 人 免费观看网站 | 日本欧美一区二区三区乱码 | 99精品国产综合久久久久五月天 | www国产亚洲精品久久久日本 | 亚洲一区二区观看播放 | 国产成人无码a区在线观看视频app | 亚洲中文字幕av在天堂 | 无码国模国产在线观看 | 欧美日韩在线亚洲综合国产人 | 国产小呦泬泬99精品 | 日日天干夜夜狠狠爱 | 亚洲中文字幕无码中字 | 久久天天躁狠狠躁夜夜免费观看 | 免费观看又污又黄的网站 | 国产偷国产偷精品高清尤物 | 欧美精品国产综合久久 | 粗大的内捧猛烈进出视频 | 亚洲の无码国产の无码步美 | 国产香蕉尹人视频在线 | 日韩少妇内射免费播放 | 国产精品人妻一区二区三区四 | 小鲜肉自慰网站xnxx | 亚洲成av人综合在线观看 | 欧美乱妇无乱码大黄a片 | 亚洲gv猛男gv无码男同 | 国产精品久久国产精品99 | 国内精品一区二区三区不卡 | 内射后入在线观看一区 | 高清无码午夜福利视频 | 国产精品99爱免费视频 | 色欲综合久久中文字幕网 | 日韩成人一区二区三区在线观看 | 久久婷婷五月综合色国产香蕉 | 77777熟女视频在线观看 а天堂中文在线官网 | 午夜精品久久久久久久久 | 国产极品视觉盛宴 | 无码一区二区三区在线 | 奇米影视7777久久精品人人爽 | 西西人体www44rt大胆高清 | 人妻熟女一区 | 亚洲の无码国产の无码步美 | 免费无码午夜福利片69 | 伊人久久大香线焦av综合影院 | 少妇人妻偷人精品无码视频 | 2020最新国产自产精品 | 免费观看的无遮挡av | 亚洲精品一区三区三区在线观看 | 男人和女人高潮免费网站 | 国产亚洲欧美日韩亚洲中文色 | 亚洲中文字幕在线无码一区二区 | 男女超爽视频免费播放 | √8天堂资源地址中文在线 | 色一情一乱一伦一区二区三欧美 | 漂亮人妻洗澡被公强 日日躁 | 中文字幕乱码人妻二区三区 | 成人无码精品1区2区3区免费看 | 中文字幕久久久久人妻 | 大屁股大乳丰满人妻 | 国产内射爽爽大片视频社区在线 | 日本精品人妻无码77777 天堂一区人妻无码 | 国产精品无码一区二区三区不卡 | 日韩精品a片一区二区三区妖精 | 无码福利日韩神码福利片 | 精品偷自拍另类在线观看 | 青青青爽视频在线观看 | 国产精品久久久久久亚洲影视内衣 | 搡女人真爽免费视频大全 | 无遮无挡爽爽免费视频 | 日本熟妇乱子伦xxxx | 国产高清av在线播放 | 亚洲欧美日韩综合久久久 | 高中生自慰www网站 | 中文字幕无线码免费人妻 | 男女作爱免费网站 | 免费乱码人妻系列无码专区 | 性色欲情网站iwww九文堂 | 激情亚洲一区国产精品 | 亚洲一区二区三区偷拍女厕 | 蜜桃臀无码内射一区二区三区 | 在线а√天堂中文官网 | 亚洲精品一区二区三区大桥未久 | 97精品国产97久久久久久免费 | 日日干夜夜干 | 日韩人妻系列无码专区 | 国产在线无码精品电影网 | 国产农村乱对白刺激视频 | 乱码av麻豆丝袜熟女系列 | 无遮挡国产高潮视频免费观看 | 日本熟妇人妻xxxxx人hd | 国内精品人妻无码久久久影院 | 大肉大捧一进一出视频出来呀 | 久久精品国产一区二区三区肥胖 | 久久精品一区二区三区四区 | 亚洲精品久久久久中文第一幕 | 狠狠色噜噜狠狠狠狠7777米奇 | 青青久在线视频免费观看 | 男人扒开女人内裤强吻桶进去 | 中文无码成人免费视频在线观看 | 久久国产精品_国产精品 | 中文字幕人成乱码熟女app | 少妇人妻偷人精品无码视频 | 中文字幕无码乱人伦 | 久久99久久99精品中文字幕 | 无码人妻丰满熟妇区毛片18 | 国产在线精品一区二区高清不卡 | 国语精品一区二区三区 | av无码电影一区二区三区 | 小泽玛莉亚一区二区视频在线 | 亚洲精品国偷拍自产在线观看蜜桃 | 一本大道久久东京热无码av | 精品国产福利一区二区 | 久久久久成人精品免费播放动漫 | 亚洲综合精品香蕉久久网 | 国产亚洲精品精品国产亚洲综合 | 国产午夜手机精彩视频 | 国产成人无码av片在线观看不卡 | 亚洲国产精品毛片av不卡在线 | 国产成人无码午夜视频在线观看 | 暴力强奷在线播放无码 | 精品国产成人一区二区三区 | 色狠狠av一区二区三区 | 国产麻豆精品精东影业av网站 | 久久精品国产99久久6动漫 | av人摸人人人澡人人超碰下载 | 欧美性生交活xxxxxdddd | 少妇人妻大乳在线视频 | 日韩av无码一区二区三区 | 亚洲国产av美女网站 | 波多野结衣av在线观看 | 国产av一区二区三区最新精品 | 97色伦图片97综合影院 | 麻豆国产人妻欲求不满谁演的 | 亚洲欧美国产精品久久 | 娇妻被黑人粗大高潮白浆 | a片免费视频在线观看 | 色一情一乱一伦一区二区三欧美 | 麻豆精品国产精华精华液好用吗 | 男女性色大片免费网站 | 国产明星裸体无码xxxx视频 | 国产另类ts人妖一区二区 | 日韩少妇白浆无码系列 | 美女毛片一区二区三区四区 | 日本熟妇乱子伦xxxx | 中国女人内谢69xxxx | 国产精品国产自线拍免费软件 | 日本护士xxxxhd少妇 | 日欧一片内射va在线影院 | 国产办公室秘书无码精品99 | 动漫av网站免费观看 | 乱码av麻豆丝袜熟女系列 | 中文无码伦av中文字幕 | 青青草原综合久久大伊人精品 | 日韩精品a片一区二区三区妖精 | 乱人伦人妻中文字幕无码久久网 | 国产欧美亚洲精品a | 亚洲中文字幕va福利 | 久久久久成人片免费观看蜜芽 | 波多野结衣av一区二区全免费观看 | 伦伦影院午夜理论片 | 成人av无码一区二区三区 | 99er热精品视频 | 少妇愉情理伦片bd | 久久久婷婷五月亚洲97号色 | 国产精品高潮呻吟av久久 | 久久精品国产精品国产精品污 | 久久综合九色综合97网 | 色噜噜亚洲男人的天堂 | 欧美三级不卡在线观看 | 中文字幕日产无线码一区 | 亚洲aⅴ无码成人网站国产app | 色婷婷av一区二区三区之红樱桃 | 日韩人妻系列无码专区 | 久久久久久a亚洲欧洲av冫 | 男人扒开女人内裤强吻桶进去 | 成人毛片一区二区 | 成人亚洲精品久久久久软件 | 久久人人爽人人爽人人片ⅴ | 久久zyz资源站无码中文动漫 | 欧美丰满熟妇xxxx性ppx人交 | 国产精品亚洲五月天高清 | 精品国产一区二区三区四区 | 亚洲精品一区二区三区在线观看 | 曰本女人与公拘交酡免费视频 | 久激情内射婷内射蜜桃人妖 | 夜夜影院未满十八勿进 | 亚洲a无码综合a国产av中文 | 亚洲成在人网站无码天堂 | 性史性农村dvd毛片 | 亚洲无人区一区二区三区 | 人人妻人人澡人人爽人人精品浪潮 | 高潮喷水的毛片 | 国产凸凹视频一区二区 | 国产精华av午夜在线观看 | 丰满少妇熟乱xxxxx视频 | 少妇一晚三次一区二区三区 | 国产香蕉97碰碰久久人人 | 天海翼激烈高潮到腰振不止 | 欧美一区二区三区 | 亚洲欧美精品aaaaaa片 | 精品午夜福利在线观看 | 初尝人妻少妇中文字幕 | 亚洲精品久久久久久一区二区 | 麻豆果冻传媒2021精品传媒一区下载 | 特大黑人娇小亚洲女 | 激情内射日本一区二区三区 | 亚洲欧洲日本综合aⅴ在线 | 国产亚洲精品久久久ai换 | 97精品国产97久久久久久免费 | 久久久国产一区二区三区 | 国产午夜亚洲精品不卡 | 亚洲啪av永久无码精品放毛片 | 欧美性色19p | 丰满妇女强制高潮18xxxx | 欧美日韩精品 | 国产精品va在线观看无码 | av无码电影一区二区三区 | 日韩成人一区二区三区在线观看 | 久久精品中文字幕大胸 | 又大又紧又粉嫩18p少妇 | 人妻无码αv中文字幕久久琪琪布 | 在线亚洲高清揄拍自拍一品区 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 18禁止看的免费污网站 | 男女性色大片免费网站 | 天堂久久天堂av色综合 | 日韩精品无码一本二本三本色 | 在教室伦流澡到高潮hnp视频 | 无套内谢的新婚少妇国语播放 | av无码不卡在线观看免费 | 午夜男女很黄的视频 | 欧美日韩人成综合在线播放 | 亚洲精品午夜无码电影网 | 熟女少妇人妻中文字幕 | 亚洲精品久久久久久久久久久 | 欧美性生交活xxxxxdddd | 一本大道伊人av久久综合 | 最近中文2019字幕第二页 | 麻豆人妻少妇精品无码专区 | 国产莉萝无码av在线播放 | 2020最新国产自产精品 | 国产xxx69麻豆国语对白 | 亚洲成a人片在线观看无码 | 成人欧美一区二区三区黑人 | 欧美亚洲日韩国产人成在线播放 | 国产色在线 | 国产 | 任你躁国产自任一区二区三区 | 偷窥日本少妇撒尿chinese | 人妻少妇精品无码专区二区 | 亚洲人成网站免费播放 | 日韩人妻无码一区二区三区久久99 | 纯爱无遮挡h肉动漫在线播放 | 亚洲成a人片在线观看无码3d | 亚洲精品欧美二区三区中文字幕 | 蜜桃臀无码内射一区二区三区 | 欧美日韩一区二区综合 | 成熟妇人a片免费看网站 | 亚洲а∨天堂久久精品2021 | 两性色午夜免费视频 | 日本熟妇浓毛 | 国产肉丝袜在线观看 | 成人动漫在线观看 | 天堂一区人妻无码 | 性做久久久久久久久 | 精品国产麻豆免费人成网站 | 国产在线aaa片一区二区99 | 久久99久久99精品中文字幕 | 天天拍夜夜添久久精品大 | 女人高潮内射99精品 | 国产又爽又猛又粗的视频a片 | 日韩少妇白浆无码系列 | 高中生自慰www网站 | av人摸人人人澡人人超碰下载 | 国产精品-区区久久久狼 | 三上悠亚人妻中文字幕在线 | 88国产精品欧美一区二区三区 | 亚洲精品成a人在线观看 | 欧美人与禽zoz0性伦交 | 国产熟妇另类久久久久 | 久久99精品久久久久久 | 动漫av一区二区在线观看 | 国产99久久精品一区二区 | 国产亚洲日韩欧美另类第八页 | 俺去俺来也www色官网 | 久久这里只有精品视频9 | 自拍偷自拍亚洲精品被多人伦好爽 | 3d动漫精品啪啪一区二区中 | 午夜理论片yy44880影院 | 精品国产av色一区二区深夜久久 | 天天爽夜夜爽夜夜爽 | 国产精品亚洲lv粉色 | 精品人妻人人做人人爽 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 国产97色在线 | 免 | 99久久人妻精品免费一区 | 99久久99久久免费精品蜜桃 | 高清不卡一区二区三区 | 人人爽人人澡人人人妻 | 久久久国产精品无码免费专区 | 国产亚洲精品久久久久久大师 | 久久久久亚洲精品男人的天堂 | 久久久久成人片免费观看蜜芽 | 精品久久久无码人妻字幂 | 久久国产精品偷任你爽任你 | 久久午夜无码鲁丝片秋霞 | 久久精品女人天堂av免费观看 | 乱码午夜-极国产极内射 | 国产美女精品一区二区三区 | 久久综合激激的五月天 | 免费观看的无遮挡av | 精品人妻人人做人人爽 | 国产亚洲人成a在线v网站 | 久久五月精品中文字幕 | 久久国内精品自在自线 | 国产性生大片免费观看性 | 性欧美大战久久久久久久 | 精品久久久无码人妻字幂 | 成人精品一区二区三区中文字幕 | 天海翼激烈高潮到腰振不止 | 麻豆蜜桃av蜜臀av色欲av | 乱码午夜-极国产极内射 | 国产精品鲁鲁鲁 | 九九综合va免费看 | 国产成人无码av在线影院 | 亚洲欧美日韩国产精品一区二区 | 少妇人妻av毛片在线看 | 亚洲国产精品一区二区美利坚 | 国产香蕉尹人综合在线观看 | 亚洲成a人片在线观看无码 | 搡女人真爽免费视频大全 | 人人超人人超碰超国产 | 99久久精品国产一区二区蜜芽 | 人妻少妇被猛烈进入中文字幕 | 国产成人无码av片在线观看不卡 | 亚洲精品国偷拍自产在线观看蜜桃 | 欧美老妇交乱视频在线观看 | 日韩亚洲欧美中文高清在线 | 亚洲熟妇色xxxxx亚洲 | 131美女爱做视频 | 国产av久久久久精东av | 久久久久av无码免费网 | 久久亚洲精品成人无码 | 在线观看欧美一区二区三区 | 黑人巨大精品欧美黑寡妇 | 国产精品99久久精品爆乳 | 国产综合久久久久鬼色 | 伊人久久婷婷五月综合97色 | 强辱丰满人妻hd中文字幕 | 激情内射日本一区二区三区 | 久青草影院在线观看国产 | 国产极品美女高潮无套在线观看 | 午夜精品久久久久久久 | 桃花色综合影院 | 老熟妇仑乱视频一区二区 | 亚洲综合伊人久久大杳蕉 | 国产精品美女久久久 | 久久人人爽人人爽人人片ⅴ | 久久综合久久自在自线精品自 | 久久国产劲爆∧v内射 | 伊人久久大香线焦av综合影院 | 性色av无码免费一区二区三区 | 亚洲色欲久久久综合网东京热 | 无人区乱码一区二区三区 | 偷窥村妇洗澡毛毛多 | 97人妻精品一区二区三区 | 精品成人av一区二区三区 | 亚洲欧洲无卡二区视頻 | 日日天干夜夜狠狠爱 | а天堂中文在线官网 | 曰本女人与公拘交酡免费视频 | 国产av无码专区亚洲awww | 成人精品一区二区三区中文字幕 | 国产精品美女久久久久av爽李琼 | 鲁一鲁av2019在线 | 精品成人av一区二区三区 | 少妇人妻偷人精品无码视频 | 国产精品久久久久影院嫩草 | 婷婷色婷婷开心五月四房播播 | 日本一卡二卡不卡视频查询 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 色一情一乱一伦一视频免费看 | 色一情一乱一伦一区二区三欧美 | 国产在热线精品视频 | 亚洲熟妇色xxxxx亚洲 | 2019nv天堂香蕉在线观看 | 成年美女黄网站色大免费全看 | 国产精品久久国产三级国 | 亚洲精品无码国产 | 成人精品视频一区二区三区尤物 | 四十如虎的丰满熟妇啪啪 | 国产精品久久久久7777 | 成人综合网亚洲伊人 | 18精品久久久无码午夜福利 | 婷婷综合久久中文字幕蜜桃三电影 | 夜夜躁日日躁狠狠久久av | 欧美激情综合亚洲一二区 | 性色av无码免费一区二区三区 | 日韩少妇内射免费播放 | 亚洲の无码国产の无码影院 | 久久 国产 尿 小便 嘘嘘 | 99视频精品全部免费免费观看 | 一区二区三区乱码在线 | 欧洲 | 亚洲国产日韩a在线播放 | 强奷人妻日本中文字幕 | 久久无码中文字幕免费影院蜜桃 | 国产农村乱对白刺激视频 | 黑人巨大精品欧美一区二区 | 国精产品一区二区三区 | 福利一区二区三区视频在线观看 | 18无码粉嫩小泬无套在线观看 | 精品人人妻人人澡人人爽人人 | 久久久久99精品国产片 | 麻豆国产人妻欲求不满 | 精品久久综合1区2区3区激情 | 无码国产激情在线观看 | 国产精品va在线观看无码 | 国产美女极度色诱视频www | 在线观看欧美一区二区三区 | 大屁股大乳丰满人妻 | 精品熟女少妇av免费观看 | 老太婆性杂交欧美肥老太 | v一区无码内射国产 | 久久99精品久久久久婷婷 | 国产精品人人妻人人爽 | 亚洲欧美色中文字幕在线 | 国产真实夫妇视频 | 久久精品成人欧美大片 | 成人无码视频免费播放 | 永久免费精品精品永久-夜色 | 日韩 欧美 动漫 国产 制服 | 欧美老熟妇乱xxxxx | 又黄又爽又色的视频 | 国产偷自视频区视频 | 欧美午夜特黄aaaaaa片 | 日本熟妇浓毛 | 狠狠色丁香久久婷婷综合五月 | 在线精品亚洲一区二区 | 亚洲中文字幕无码一久久区 | 伊在人天堂亚洲香蕉精品区 | 少妇邻居内射在线 | 扒开双腿吃奶呻吟做受视频 | 久久综合给久久狠狠97色 | 伊人久久大香线焦av综合影院 | 亚洲欧洲日本无在线码 | 天天摸天天碰天天添 | 俺去俺来也在线www色官网 | 97精品人妻一区二区三区香蕉 | 国产成人综合在线女婷五月99播放 | 老熟妇乱子伦牲交视频 | 亚洲色无码一区二区三区 | 欧美成人免费全部网站 | 性欧美熟妇videofreesex | 国产电影无码午夜在线播放 | 国产精品欧美成人 | 国产精品va在线播放 | 两性色午夜免费视频 | 久久久久av无码免费网 | 中文字幕av伊人av无码av | 人妻少妇精品久久 | 乌克兰少妇性做爰 | 77777熟女视频在线观看 а天堂中文在线官网 | 亚洲の无码国产の无码影院 | 中文字幕人妻无码一夲道 | 成人性做爰aaa片免费看 | 国产精华av午夜在线观看 | 中文字幕久久久久人妻 | 丰满肥臀大屁股熟妇激情视频 | 中文字幕无码免费久久99 | 天堂亚洲2017在线观看 | 色诱久久久久综合网ywww | 午夜无码人妻av大片色欲 | 色综合久久久无码中文字幕 | 在线观看欧美一区二区三区 | 狠狠色丁香久久婷婷综合五月 | 99久久久国产精品无码免费 | 亚洲午夜无码久久 | 76少妇精品导航 | 曰韩少妇内射免费播放 | 狠狠色丁香久久婷婷综合五月 | 国产色在线 | 国产 | 午夜丰满少妇性开放视频 | 久久久中文久久久无码 | 成人影院yy111111在线观看 | 九九综合va免费看 | 中文字幕 人妻熟女 | 极品尤物被啪到呻吟喷水 | 99久久久国产精品无码免费 | www成人国产高清内射 | 呦交小u女精品视频 | 亚洲欧美国产精品专区久久 | 午夜免费福利小电影 | 成人免费无码大片a毛片 | 久热国产vs视频在线观看 | 国产色精品久久人妻 | 99久久精品国产一区二区蜜芽 | 熟女少妇人妻中文字幕 | 好男人社区资源 | 双乳奶水饱满少妇呻吟 | 国产精品久久久av久久久 | 精品乱码久久久久久久 | 大地资源网第二页免费观看 | 熟女少妇在线视频播放 | 色五月五月丁香亚洲综合网 | 男女猛烈xx00免费视频试看 | 亚洲最大成人网站 | 国产一区二区不卡老阿姨 | 天天综合网天天综合色 | 青青久在线视频免费观看 | 免费观看黄网站 | 久久精品人人做人人综合试看 | 狠狠亚洲超碰狼人久久 | 久久久久久久久888 | 夜精品a片一区二区三区无码白浆 | 国产亚洲精品久久久ai换 | 免费观看的无遮挡av | 久久人人97超碰a片精品 | 无码精品人妻一区二区三区av | 中文字幕av无码一区二区三区电影 | 国产精品欧美成人 | 人人妻人人藻人人爽欧美一区 | 女人色极品影院 | 国产色视频一区二区三区 | 无码人妻精品一区二区三区不卡 | 白嫩日本少妇做爰 | 99精品久久毛片a片 | 300部国产真实乱 | 丁香啪啪综合成人亚洲 | 国精产品一品二品国精品69xx | 扒开双腿吃奶呻吟做受视频 | 国产特级毛片aaaaaaa高清 | 国产精品久久久久久无码 | 四虎国产精品免费久久 | 九一九色国产 | 国产人成高清在线视频99最全资源 | 色婷婷久久一区二区三区麻豆 | 色偷偷人人澡人人爽人人模 | 女高中生第一次破苞av | 欧美三级不卡在线观看 | 正在播放东北夫妻内射 | 亚洲人成影院在线观看 | 成人免费视频一区二区 | 精品人妻人人做人人爽 | 色偷偷人人澡人人爽人人模 | 爽爽影院免费观看 | 久久久久免费看成人影片 | 欧美怡红院免费全部视频 | 97久久国产亚洲精品超碰热 | 亚洲人成影院在线观看 | 国产特级毛片aaaaaaa高清 | 亚洲综合久久一区二区 | 伊人久久大香线蕉av一区二区 | 最近免费中文字幕中文高清百度 | 国产人成高清在线视频99最全资源 | 一本色道久久综合亚洲精品不卡 | 国产精品亚洲lv粉色 | 国内精品人妻无码久久久影院蜜桃 | 老子影院午夜伦不卡 | 欧美激情一区二区三区成人 | 久久综合狠狠综合久久综合88 | 人人爽人人爽人人片av亚洲 | 一本加勒比波多野结衣 | 国产美女极度色诱视频www | 无码国产激情在线观看 | 美女毛片一区二区三区四区 | 久久国产精品精品国产色婷婷 | 国产成人精品一区二区在线小狼 | 国产乱人伦av在线无码 | 牛和人交xxxx欧美 | 国产黑色丝袜在线播放 | 成人女人看片免费视频放人 | 日韩精品成人一区二区三区 | 娇妻被黑人粗大高潮白浆 | 国产精品沙发午睡系列 | 国产成人一区二区三区别 | 乱中年女人伦av三区 | 国产成人无码专区 | 欧美 丝袜 自拍 制服 另类 | 性生交片免费无码看人 | 人人妻在人人 | 免费人成网站视频在线观看 | 欧洲熟妇精品视频 | 亚洲国产精品一区二区第一页 | 成年美女黄网站色大免费视频 | 国产精品久久久久久无码 | 国产亚洲精品久久久ai换 | 国产成人精品久久亚洲高清不卡 | 成人精品视频一区二区三区尤物 | 国产两女互慰高潮视频在线观看 | 国产一区二区三区影院 | 丰满人妻精品国产99aⅴ | 久久亚洲国产成人精品性色 | 沈阳熟女露脸对白视频 | 狂野欧美性猛xxxx乱大交 | 国产舌乚八伦偷品w中 | 乱中年女人伦av三区 | 老熟女重囗味hdxx69 | 亚洲精品国偷拍自产在线观看蜜桃 | 少妇人妻av毛片在线看 | 玩弄少妇高潮ⅹxxxyw | 99riav国产精品视频 | 999久久久国产精品消防器材 | 欧美丰满熟妇xxxx | 亚洲 另类 在线 欧美 制服 | 小鲜肉自慰网站xnxx | 成人无码视频在线观看网站 | 中文字幕乱妇无码av在线 | 无套内谢的新婚少妇国语播放 | 老熟女重囗味hdxx69 | 一本色道久久综合亚洲精品不卡 | 欧美兽交xxxx×视频 | 亚洲小说春色综合另类 | 四虎永久在线精品免费网址 | 少妇高潮一区二区三区99 | 国产亚洲日韩欧美另类第八页 | 中文字幕无码免费久久9一区9 | 一本大道伊人av久久综合 | 丰满诱人的人妻3 | 亚洲精品无码人妻无码 | 国产内射爽爽大片视频社区在线 | 久久亚洲日韩精品一区二区三区 | 无码人妻av免费一区二区三区 | 国内精品一区二区三区不卡 | 正在播放东北夫妻内射 | 人妻夜夜爽天天爽三区 | 久久熟妇人妻午夜寂寞影院 | 国精产品一区二区三区 | 东京热一精品无码av | 理论片87福利理论电影 | 亚洲综合久久一区二区 | 欧美 丝袜 自拍 制服 另类 | 学生妹亚洲一区二区 | 国内精品久久毛片一区二区 | 精品国产精品久久一区免费式 | 中文字幕精品av一区二区五区 | 日日碰狠狠丁香久燥 | 亚洲色在线无码国产精品不卡 | 国产精品igao视频网 | 天堂一区人妻无码 | 日本护士毛茸茸高潮 | 中文字幕av日韩精品一区二区 | 麻豆精品国产精华精华液好用吗 | 好男人社区资源 | 67194成是人免费无码 | 性欧美熟妇videofreesex | 人人妻人人澡人人爽欧美一区九九 | 亚洲一区二区三区偷拍女厕 | 又黄又爽又色的视频 | 亚洲日本一区二区三区在线 | 欧美 亚洲 国产 另类 | 午夜精品一区二区三区的区别 | 日韩欧美群交p片內射中文 | 国产综合色产在线精品 | 亚洲国产精品成人久久蜜臀 | 老头边吃奶边弄进去呻吟 | 高清不卡一区二区三区 | 成熟人妻av无码专区 | 国产成人无码一二三区视频 | 国产精品无码成人午夜电影 | 国产香蕉97碰碰久久人人 | 国产精品久久久久久亚洲影视内衣 | 亚洲欧美综合区丁香五月小说 | 国产成人无码一二三区视频 | √天堂中文官网8在线 | 国产麻豆精品一区二区三区v视界 | 呦交小u女精品视频 | 国产办公室秘书无码精品99 | 国产精品久久久久无码av色戒 | 欧美日韩人成综合在线播放 | 亚洲aⅴ无码成人网站国产app | 撕开奶罩揉吮奶头视频 | 在教室伦流澡到高潮hnp视频 | 国产舌乚八伦偷品w中 | 女高中生第一次破苞av | 熟妇人妻激情偷爽文 | 中文字幕乱码人妻二区三区 | 午夜精品久久久内射近拍高清 | 亚洲精品国产精品乱码不卡 | 高清无码午夜福利视频 | 少妇性俱乐部纵欲狂欢电影 | 精品亚洲韩国一区二区三区 | 无码纯肉视频在线观看 | 全黄性性激高免费视频 | 大胆欧美熟妇xx | 免费看男女做好爽好硬视频 | 特级做a爰片毛片免费69 | 国产极品美女高潮无套在线观看 | 啦啦啦www在线观看免费视频 | 18禁止看的免费污网站 | 国产特级毛片aaaaaa高潮流水 | 午夜精品久久久久久久 | 亚洲 激情 小说 另类 欧美 | 欧美日本免费一区二区三区 | 国产性生交xxxxx无码 | 国产亚洲精品久久久久久大师 | 99在线 | 亚洲 | 人妻少妇被猛烈进入中文字幕 | 午夜丰满少妇性开放视频 | 久久国产自偷自偷免费一区调 | 亚洲成a人片在线观看无码3d | 亚洲欧洲日本综合aⅴ在线 | 色五月五月丁香亚洲综合网 | 日本高清一区免费中文视频 | 亚洲国产成人a精品不卡在线 | 少妇性俱乐部纵欲狂欢电影 | 露脸叫床粗话东北少妇 | 国产香蕉97碰碰久久人人 | 中文字幕无码免费久久99 | 国色天香社区在线视频 | 久久国产精品萌白酱免费 | 国产亚洲精品久久久闺蜜 | 欧美xxxx黑人又粗又长 | 亚洲色www成人永久网址 | 国产精品办公室沙发 | 婷婷五月综合缴情在线视频 | 伊人久久大香线蕉av一区二区 | 国产精品99久久精品爆乳 | 久在线观看福利视频 | 精品乱子伦一区二区三区 | 日韩精品无码一本二本三本色 | 精品国产麻豆免费人成网站 | 久久99国产综合精品 | 欧美精品无码一区二区三区 | 国产亚洲美女精品久久久2020 | 日本va欧美va欧美va精品 | 丝袜足控一区二区三区 | 成人综合网亚洲伊人 | 国产亚洲日韩欧美另类第八页 | 永久黄网站色视频免费直播 | 亚洲国产精品美女久久久久 | 男女性色大片免费网站 | 国产人妻人伦精品 | 一本精品99久久精品77 | 亚洲精品一区三区三区在线观看 | 国产精品高潮呻吟av久久 | 久久综合狠狠综合久久综合88 | 久久无码中文字幕免费影院蜜桃 | 任你躁在线精品免费 | 一本精品99久久精品77 | 男女下面进入的视频免费午夜 | av无码电影一区二区三区 | 亚洲色大成网站www国产 | 中文字幕乱码亚洲无线三区 | 欧美xxxxx精品 | av在线亚洲欧洲日产一区二区 | 国产农村乱对白刺激视频 | 中文字幕无码视频专区 | 无码午夜成人1000部免费视频 | 欧洲熟妇色 欧美 | 老熟妇仑乱视频一区二区 | 狠狠躁日日躁夜夜躁2020 | 又大又黄又粗又爽的免费视频 | 免费无码av一区二区 | 国产精品久久久午夜夜伦鲁鲁 | 亚洲国产精品一区二区第一页 | 东京一本一道一二三区 | 成人精品一区二区三区中文字幕 | 动漫av网站免费观看 | 成人精品天堂一区二区三区 | 国产人妻精品一区二区三区 | 久久久中文久久久无码 | 久久久精品成人免费观看 | 国产高清av在线播放 | 亚洲第一网站男人都懂 | 国产舌乚八伦偷品w中 | 久久久久国色av免费观看性色 | 日韩精品成人一区二区三区 | 青青草原综合久久大伊人精品 | 日本xxxx色视频在线观看免费 | 精品人妻人人做人人爽夜夜爽 | 亚洲色大成网站www | 内射爽无广熟女亚洲 | 男人扒开女人内裤强吻桶进去 | 亚洲精品久久久久中文第一幕 | 日韩在线不卡免费视频一区 | 国产乱人伦av在线无码 | 激情亚洲一区国产精品 | 在线精品国产一区二区三区 | 亚洲娇小与黑人巨大交 | 欧美丰满熟妇xxxx性ppx人交 | 国产真实乱对白精彩久久 | 又大又硬又爽免费视频 | 无码人妻丰满熟妇区毛片18 | 国产精品99爱免费视频 | 无码av最新清无码专区吞精 | 少妇一晚三次一区二区三区 | 国产亚av手机在线观看 | 特黄特色大片免费播放器图片 | 国内揄拍国内精品人妻 | 亚洲精品鲁一鲁一区二区三区 | 欧美性猛交内射兽交老熟妇 | 色综合久久网 | 中文字幕av日韩精品一区二区 | 日本xxxx色视频在线观看免费 | 日韩精品无码免费一区二区三区 | 少妇厨房愉情理9仑片视频 | 日韩欧美群交p片內射中文 | 未满小14洗澡无码视频网站 | 中文字幕日韩精品一区二区三区 | 51国偷自产一区二区三区 | 久久久精品国产sm最大网站 | 国产亚洲美女精品久久久2020 | 国产精品高潮呻吟av久久4虎 | 国产精品无码一区二区桃花视频 | 狠狠综合久久久久综合网 | 国产无av码在线观看 | 中文字幕日韩精品一区二区三区 | 日本精品人妻无码免费大全 | 18黄暴禁片在线观看 | 无码人妻精品一区二区三区不卡 | 狂野欧美激情性xxxx | 国产美女极度色诱视频www | 成人精品天堂一区二区三区 | 日韩亚洲欧美中文高清在线 | 日本丰满护士爆乳xxxx | 免费国产黄网站在线观看 | 午夜不卡av免费 一本久久a久久精品vr综合 | 成人无码精品1区2区3区免费看 | 久久午夜无码鲁丝片午夜精品 | aⅴ亚洲 日韩 色 图网站 播放 | 无码帝国www无码专区色综合 | 一区二区三区高清视频一 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 男女爱爱好爽视频免费看 | 中文字幕无码免费久久9一区9 | 97se亚洲精品一区 | 少妇太爽了在线观看 | 亚洲精品成a人在线观看 | 欧美丰满熟妇xxxx性ppx人交 | 国精品人妻无码一区二区三区蜜柚 | 国产特级毛片aaaaaa高潮流水 | 欧美日韩一区二区综合 | 日本又色又爽又黄的a片18禁 | 精品厕所偷拍各类美女tp嘘嘘 | 国产精品成人av在线观看 | www一区二区www免费 | 精品一二三区久久aaa片 | 无码一区二区三区在线观看 | 日韩成人一区二区三区在线观看 | 久久精品人妻少妇一区二区三区 | 亚无码乱人伦一区二区 | 日本欧美一区二区三区乱码 | 一本无码人妻在中文字幕免费 | 日产精品高潮呻吟av久久 | 日本一卡二卡不卡视频查询 | 亚洲男女内射在线播放 | 300部国产真实乱 | 国产三级久久久精品麻豆三级 | 欧美精品国产综合久久 | 色婷婷久久一区二区三区麻豆 | 欧美性生交活xxxxxdddd | 大地资源网第二页免费观看 | 亚洲成a人片在线观看无码3d | 精品一区二区不卡无码av | 国产精品久久久一区二区三区 | 国产极品美女高潮无套在线观看 | 国产超级va在线观看视频 | 毛片内射-百度 | 妺妺窝人体色www在线小说 | 日韩欧美中文字幕在线三区 | 久久精品人人做人人综合 | 国产无遮挡又黄又爽免费视频 | 人妻少妇精品久久 | 色婷婷av一区二区三区之红樱桃 | 久久99热只有频精品8 | 国产极品美女高潮无套在线观看 | 在线看片无码永久免费视频 | 精品国产国产综合精品 | av香港经典三级级 在线 | 欧美老妇交乱视频在线观看 | 久久久久成人精品免费播放动漫 | 在线a亚洲视频播放在线观看 | 熟妇激情内射com | 亚洲成a人片在线观看无码 | 日韩无套无码精品 | 女人被男人躁得好爽免费视频 | 亚洲精品综合五月久久小说 | 在线播放无码字幕亚洲 | 中文字幕无码av激情不卡 | 国内揄拍国内精品少妇国语 | 日韩欧美群交p片內射中文 | a片免费视频在线观看 | 中文字幕色婷婷在线视频 | 亚洲综合伊人久久大杳蕉 | 久久zyz资源站无码中文动漫 | 国产精品-区区久久久狼 | 无码人妻少妇伦在线电影 | √天堂资源地址中文在线 | 麻豆果冻传媒2021精品传媒一区下载 | 2020最新国产自产精品 | 欧美性生交xxxxx久久久 | 亚洲狠狠色丁香婷婷综合 | 亚洲中文字幕无码中字 | 久久久成人毛片无码 | 97色伦图片97综合影院 | 亚洲精品美女久久久久久久 | 乱人伦人妻中文字幕无码 | 久久精品人人做人人综合试看 | 精品国偷自产在线 | 一本久久a久久精品亚洲 | 强奷人妻日本中文字幕 | 国产xxx69麻豆国语对白 | 无码国内精品人妻少妇 | 九九久久精品国产免费看小说 | 亚洲无人区午夜福利码高清完整版 | 日韩亚洲欧美精品综合 | 国语自产偷拍精品视频偷 | 一个人看的www免费视频在线观看 | 任你躁国产自任一区二区三区 | 动漫av网站免费观看 | 国产麻豆精品精东影业av网站 | 在线а√天堂中文官网 | 激情综合激情五月俺也去 | 夜夜躁日日躁狠狠久久av | 午夜精品久久久内射近拍高清 | 国内精品九九久久久精品 | 精品日本一区二区三区在线观看 | а√资源新版在线天堂 | 免费看男女做好爽好硬视频 | 影音先锋中文字幕无码 | 性色av无码免费一区二区三区 | 精品熟女少妇av免费观看 | 成人无码精品一区二区三区 | 国产香蕉97碰碰久久人人 | 无码人妻丰满熟妇区五十路百度 | 狠狠色丁香久久婷婷综合五月 | 精品人人妻人人澡人人爽人人 | 无码人妻出轨黑人中文字幕 | 伊人久久大香线焦av综合影院 | 亚洲综合无码一区二区三区 | 国产精品久久国产三级国 | 最新国产乱人伦偷精品免费网站 | 日日天干夜夜狠狠爱 | 国产精品久久久久久亚洲毛片 | 国产精品福利视频导航 | 国产又爽又黄又刺激的视频 | 小sao货水好多真紧h无码视频 | 国产亚洲精品久久久ai换 | 少妇无码吹潮 | 扒开双腿疯狂进出爽爽爽视频 | 无码国内精品人妻少妇 | 国产精品美女久久久 | 领导边摸边吃奶边做爽在线观看 | 波多野结衣 黑人 | 国产明星裸体无码xxxx视频 | 老太婆性杂交欧美肥老太 | 亚洲中文字幕无码一久久区 | 亚洲自偷自偷在线制服 | 免费播放一区二区三区 | 黑人大群体交免费视频 | 亚洲人成人无码网www国产 | 人妻无码久久精品人妻 | 永久免费观看国产裸体美女 | 欧美野外疯狂做受xxxx高潮 | 亚洲中文字幕无码中文字在线 | 亚洲人亚洲人成电影网站色 | 老子影院午夜精品无码 | av人摸人人人澡人人超碰下载 | 国产人妖乱国产精品人妖 | 午夜福利电影 | 亚洲国产精品一区二区第一页 | 国产精品人人爽人人做我的可爱 | 大屁股大乳丰满人妻 | 欧美三级a做爰在线观看 | 亚洲天堂2017无码中文 | 日本饥渴人妻欲求不满 | 国产成人无码a区在线观看视频app | 日本精品久久久久中文字幕 | 国产无遮挡又黄又爽免费视频 | 日韩精品无码一本二本三本色 | 无人区乱码一区二区三区 | 少妇无套内谢久久久久 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 少妇性俱乐部纵欲狂欢电影 | 日韩av激情在线观看 | 2020最新国产自产精品 | 99久久精品日本一区二区免费 | 捆绑白丝粉色jk震动捧喷白浆 | 日韩在线不卡免费视频一区 | 亚洲综合另类小说色区 | 麻花豆传媒剧国产免费mv在线 | 日韩亚洲欧美中文高清在线 | 日本成熟视频免费视频 | 久久人妻内射无码一区三区 | 蜜桃av抽搐高潮一区二区 | 在线精品国产一区二区三区 | 最新版天堂资源中文官网 | 丰腴饱满的极品熟妇 | 亚洲精品午夜国产va久久成人 | 久久综合九色综合97网 | 无遮无挡爽爽免费视频 | 国产成人一区二区三区在线观看 | 亚洲人亚洲人成电影网站色 | 粉嫩少妇内射浓精videos | 免费无码av一区二区 | 欧美 日韩 亚洲 在线 | 中文字幕无码日韩专区 | 亚洲一区av无码专区在线观看 | 亚洲一区av无码专区在线观看 | 久久精品女人天堂av免费观看 | 国产精品久久久久无码av色戒 | 老子影院午夜伦不卡 | 强奷人妻日本中文字幕 | 荫蒂被男人添的好舒服爽免费视频 | 欧美 丝袜 自拍 制服 另类 | 色婷婷香蕉在线一区二区 | 鲁鲁鲁爽爽爽在线视频观看 | 日本一本二本三区免费 | 丰满少妇人妻久久久久久 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 成人亚洲精品久久久久软件 | 波多野结衣一区二区三区av免费 | 正在播放东北夫妻内射 | 亚洲欧美日韩国产精品一区二区 | 樱花草在线播放免费中文 | 亚洲自偷精品视频自拍 | 两性色午夜视频免费播放 | 久久国产自偷自偷免费一区调 | 欧美阿v高清资源不卡在线播放 | 无码国内精品人妻少妇 | 亚洲va欧美va天堂v国产综合 | 色五月丁香五月综合五月 | 丝袜美腿亚洲一区二区 | 久精品国产欧美亚洲色aⅴ大片 | 国产亚洲精品久久久久久久久动漫 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 午夜无码区在线观看 | 亚洲无人区一区二区三区 | 欧洲极品少妇 | 亚洲色欲色欲欲www在线 | 999久久久国产精品消防器材 | 一本久久伊人热热精品中文字幕 | 国产亚洲精品精品国产亚洲综合 | 国产精品二区一区二区aⅴ污介绍 | 97se亚洲精品一区 | 国产亚洲精品久久久久久国模美 | 国产精品成人av在线观看 | 国产精品对白交换视频 | 国产成人一区二区三区在线观看 | 国产内射爽爽大片视频社区在线 | 国精品人妻无码一区二区三区蜜柚 | 国产精品18久久久久久麻辣 | 国产精品久久久午夜夜伦鲁鲁 | 国产欧美熟妇另类久久久 | 特级做a爰片毛片免费69 | 亚洲精品一区二区三区在线观看 | 青春草在线视频免费观看 | 免费国产黄网站在线观看 | 国产成人无码区免费内射一片色欲 | 日日夜夜撸啊撸 | 亚洲精品一区三区三区在线观看 | 丰满肥臀大屁股熟妇激情视频 | 久久aⅴ免费观看 | 国产精品亚洲五月天高清 | 性欧美疯狂xxxxbbbb | 国产免费久久精品国产传媒 | 丰满人妻被黑人猛烈进入 | 国产午夜福利亚洲第一 | 动漫av网站免费观看 | 强伦人妻一区二区三区视频18 | 青青草原综合久久大伊人精品 | 欧美兽交xxxx×视频 | 国产乱人伦偷精品视频 | 欧美性猛交xxxx富婆 | 一本大道伊人av久久综合 | 在线成人www免费观看视频 | 99久久精品日本一区二区免费 | 亚洲成av人片在线观看无码不卡 | 日韩av激情在线观看 | 国产精品爱久久久久久久 | 国产艳妇av在线观看果冻传媒 | 四虎国产精品一区二区 | 国产午夜手机精彩视频 | 国产精品久久久久无码av色戒 | 亚洲国产精品久久人人爱 | 一本精品99久久精品77 | 97资源共享在线视频 | 久久伊人色av天堂九九小黄鸭 | 亚洲人成网站在线播放942 | 国内精品久久毛片一区二区 | 亚洲人成无码网www | 中文亚洲成a人片在线观看 | 亚洲精品一区二区三区四区五区 | 51国偷自产一区二区三区 | 亚洲中文字幕无码一久久区 | www国产亚洲精品久久网站 | 粗大的内捧猛烈进出视频 | 中文字幕日产无线码一区 | 国产一区二区三区四区五区加勒比 | 在线播放亚洲第一字幕 | 色综合久久久无码网中文 | 成人av无码一区二区三区 | 国产成人综合美国十次 | 少妇人妻大乳在线视频 | 99国产欧美久久久精品 | 亚洲色无码一区二区三区 | 亚洲成av人片天堂网无码】 | 欧美丰满少妇xxxx性 | 精品国产麻豆免费人成网站 | 亚洲精品午夜无码电影网 | 人妻少妇精品视频专区 | 一区二区传媒有限公司 | 女人被爽到呻吟gif动态图视看 | 亚洲午夜久久久影院 | 老司机亚洲精品影院 | 无码人妻精品一区二区三区不卡 | 美女张开腿让人桶 | 初尝人妻少妇中文字幕 | 久久久久久亚洲精品a片成人 | 日日躁夜夜躁狠狠躁 | 色婷婷久久一区二区三区麻豆 | 精品一二三区久久aaa片 | 中文字幕人妻无码一区二区三区 | 久久久久成人精品免费播放动漫 | 亚洲爆乳大丰满无码专区 | 日本精品少妇一区二区三区 | 亚洲色大成网站www国产 | 亚洲成av人综合在线观看 | 中文字幕无线码免费人妻 | 久久精品中文字幕一区 | 中文字幕av无码一区二区三区电影 | 人人妻人人藻人人爽欧美一区 | 亚洲aⅴ无码成人网站国产app | 国产成人无码专区 | 久久午夜无码鲁丝片秋霞 | 成年女人永久免费看片 | 欧美精品免费观看二区 | 亚洲日韩av片在线观看 | 乌克兰少妇性做爰 | 夜夜躁日日躁狠狠久久av | 免费网站看v片在线18禁无码 | 国产精品国产三级国产专播 | 中文字幕人成乱码熟女app | 久久综合久久自在自线精品自 | 亚洲国产一区二区三区在线观看 | 极品嫩模高潮叫床 | 国产av人人夜夜澡人人爽麻豆 | 任你躁国产自任一区二区三区 | 久久 国产 尿 小便 嘘嘘 | а√资源新版在线天堂 | 狠狠躁日日躁夜夜躁2020 | 丰满少妇高潮惨叫视频 | 日本熟妇大屁股人妻 | 高清不卡一区二区三区 | 国产熟女一区二区三区四区五区 | 亚洲综合色区中文字幕 | 亚洲精品国偷拍自产在线观看蜜桃 | 久久久久99精品国产片 | 熟妇人妻无码xxx视频 | 亚洲s码欧洲m码国产av | 一二三四在线观看免费视频 | 亚洲欧美精品伊人久久 | 国精产品一品二品国精品69xx | 亚洲熟妇色xxxxx欧美老妇 | 玩弄中年熟妇正在播放 | 精品无码av一区二区三区 | 国产性生交xxxxx无码 | 日韩在线不卡免费视频一区 | 色婷婷av一区二区三区之红樱桃 | 欧美三级a做爰在线观看 | 国产真实夫妇视频 | 无码av免费一区二区三区试看 | 欧洲精品码一区二区三区免费看 | 小鲜肉自慰网站xnxx | 亚洲第一网站男人都懂 | 久久97精品久久久久久久不卡 | 丰满少妇弄高潮了www | 国产av无码专区亚洲awww | 极品嫩模高潮叫床 | 一本大道久久东京热无码av | 天天综合网天天综合色 | 亚洲の无码国产の无码步美 | 国产人妻大战黑人第1集 | 丝袜 中出 制服 人妻 美腿 | 国产亚洲精品久久久久久久久动漫 | 国产无套内射久久久国产 | 亚洲人成影院在线观看 | 中文字幕人成乱码熟女app | 99精品国产综合久久久久五月天 | 国产免费观看黄av片 | 日韩欧美群交p片內射中文 | 国产一精品一av一免费 | 窝窝午夜理论片影院 | а√资源新版在线天堂 | 欧美性生交xxxxx久久久 | 日产精品高潮呻吟av久久 | 六月丁香婷婷色狠狠久久 | 国内揄拍国内精品人妻 | 97无码免费人妻超级碰碰夜夜 | 欧美日韩在线亚洲综合国产人 | 亚洲精品中文字幕 | 国产乡下妇女做爰 | 久久久久久九九精品久 | 女人被男人爽到呻吟的视频 | 日日摸日日碰夜夜爽av | 日韩无套无码精品 | 人妻与老人中文字幕 | 精品一二三区久久aaa片 | 激情亚洲一区国产精品 | 无码人中文字幕 | 亚洲日韩一区二区三区 | 亚洲经典千人经典日产 | 国产成人一区二区三区别 | 国产精品久久久久久久影院 | 综合网日日天干夜夜久久 | 国产成人无码一二三区视频 | 成人女人看片免费视频放人 | 一二三四在线观看免费视频 | 国产成人精品久久亚洲高清不卡 | 久久人人97超碰a片精品 | 高潮毛片无遮挡高清免费 | 熟女少妇人妻中文字幕 | 野外少妇愉情中文字幕 | 久久久久久亚洲精品a片成人 | 99精品无人区乱码1区2区3区 | 荫蒂被男人添的好舒服爽免费视频 | 亚洲色无码一区二区三区 | 天堂无码人妻精品一区二区三区 | 精品欧洲av无码一区二区三区 | 曰韩无码二三区中文字幕 | 99久久人妻精品免费二区 | 亚洲乱亚洲乱妇50p | 久久zyz资源站无码中文动漫 | 精品无人区无码乱码毛片国产 | 久久久久人妻一区精品色欧美 | 鲁鲁鲁爽爽爽在线视频观看 | 综合激情五月综合激情五月激情1 | 日本免费一区二区三区最新 | 国产日产欧产精品精品app | 欧美xxxx黑人又粗又长 | 久久熟妇人妻午夜寂寞影院 | 日韩精品a片一区二区三区妖精 | 18精品久久久无码午夜福利 | 亚洲欧美国产精品久久 | 欧洲欧美人成视频在线 | 日本成熟视频免费视频 | 少妇厨房愉情理9仑片视频 | 又紧又大又爽精品一区二区 | а√资源新版在线天堂 | 蜜桃av抽搐高潮一区二区 | 丰满少妇女裸体bbw | 国产香蕉97碰碰久久人人 | 国产精品沙发午睡系列 | 精品厕所偷拍各类美女tp嘘嘘 | 亚洲人成网站免费播放 | 日本熟妇人妻xxxxx人hd | 国产成人午夜福利在线播放 | 亚洲精品国偷拍自产在线麻豆 | 国产黄在线观看免费观看不卡 | 日韩视频 中文字幕 视频一区 | 久在线观看福利视频 | www国产精品内射老师 | 亚洲日韩乱码中文无码蜜桃臀网站 | 人人爽人人澡人人高潮 | 夜先锋av资源网站 | 亚洲色成人中文字幕网站 | 亚洲狠狠婷婷综合久久 | 在线播放亚洲第一字幕 | 国产在线aaa片一区二区99 | √天堂资源地址中文在线 | 国产极品美女高潮无套在线观看 | 日韩人妻无码中文字幕视频 | 亚洲中文字幕乱码av波多ji | 亚洲精品久久久久中文第一幕 | 精品国偷自产在线视频 |