日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux bash脚本编程知识点

發(fā)布時間:2025/3/16 linux 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux bash脚本编程知识点 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
bash變量類型:
環(huán)境變量
本地變量(局部變量)
位置變量
特殊變量

本地變量:
set VARNAME=VALUE: 作用域為整個bash進程;
引用變量 $(varname)
局部變量:
local VARNAME=VALUE:作用域為當前代碼段;


環(huán)境變量:作用域為當前shell進程及其子進程;
export VARNAM
E=VALUE
VARNAME=VALUE
export VARNAME
“導出”
腳本在執(zhí)行時會啟動一個子shell進程
命令行中啟動的腳本會繼承當前shell環(huán)境變量
系統(tǒng)自動執(zhí)行的腳本(非命令行啟動)就需要自我定義需要各環(huán)境變量


位置變量:
$1, $2, ...


$?: 保存上一個命令的執(zhí)行狀態(tài)返回值;


程序執(zhí)行,可能有兩類返回值:
程序執(zhí)行結果
程序狀態(tài)返回代碼(0-255)
0: 正確執(zhí)行
1-255:錯誤執(zhí)行,1,2,127系統(tǒng)預留;




撤消變量:
unset VARNAME


查看當shell中變量:
set


查看當前shell中的環(huán)境變量:
printenv
env
export


腳本:命令的堆砌,按實際需要,結合命令流程控制機制實現(xiàn)的源程序


shebang: 魔數(shù)
#!/bin/bash
# 注釋行,不執(zhí)行






/dev/null: 軟件設備, bit bucket,數(shù)據(jù)黑洞



腳本在執(zhí)行時會啟動一個子shell進程;
命令行中啟動的腳本會繼承當前shell環(huán)境變量;






練習:寫一個腳本,完成以下任務
1、添加5個用戶, user1,..., user5
2、每個用戶的密碼同用戶名,而且要求,添加密碼完成后不顯示passwd命令的執(zhí)行結果信息;
3、每個用戶添加完成后,都要顯示用戶某某已經(jīng)成功添加;
useradd user1
echo "user1" | passwd --stdin user1 &> /dev/null
echo "Add user1 successfully."




條件判斷:
如果用戶不存在
添加用戶,給密碼并顯示添加成功;
否則
顯示如果已經(jīng)沒在,沒有添加;


bash中如何實現(xiàn)條件判斷?
條件測試類型:
整數(shù)測試
字符測試
文件測試


條件測試的表達式:
[ expression ]
[[ expression ]]
test expression

整數(shù)比較:
-eq: 測試兩個整數(shù)是否相等;比如 $A -eq $B
-ne: 測試兩個整數(shù)是否不等;不等,為真;相等,為假;
-gt: 測試一個數(shù)是否大于另一個數(shù);大于,為真;否則,為假;
-lt: 測試一個數(shù)是否小于另一個數(shù);小于,為真;否則,為假;
-ge: 大于或等于
-le:小于或等于

命令的間邏輯關系:
邏輯與: &&
第一個條件為假時,第二條件不用再判斷,最終結果已經(jīng)有;
第一個條件為真時,第二條件必須得判斷;
邏輯或: ||

如果用戶user6不存在,就添加用戶user6
! id user6 && useradd user6
id user6 || useradd user6


如果/etc/inittab文件的行數(shù)大于100,就顯示好大的文件;
[ `wc -l /etc/inittab | cut -d' ' -f1` -gt 100 ] && echo "Large file."


變量名稱:
1、只能包含字母、數(shù)字和下劃線,并且不能數(shù)字開頭;
2、不應該跟系統(tǒng)中已有的環(huán)境變量重名;
3、最好做到見名知義;


如果用戶存在,就顯示用戶已存在;否則,就添加此用戶;
id user1 && echo "user1 exists." || useradd user1


如果用戶不存在,就添加;否則,顯示其已經(jīng)存在;
! id user1 && useradd user1 || echo "user1 exists."


如果用戶不存在,添加并且給密碼;否則,顯示其已經(jīng)存在;
! id user1 && useradd user1 && echo "user1" | passwd --stdin user1 || echo "user1 exists."




練習,寫一個腳本,完成以下要求:
1、添加3個用戶user1, user2, user3;但要先判斷用戶是否存在,不存在而后再添加;
2、添加完成后,顯示一共添加了幾個用戶;當然,不能包括因為事先存在而沒有添加的;
3、最后顯示當前系統(tǒng)上共有多少個用戶;


如果 UID為0;那么
? 顯示為管理員
否則
? 顯示為普通用戶
??
NAME=user16
USERID=`id -u $NAME`
if [ $USERID -eq 0 ]; then
? echo "Admin"
else
? echo "common user."
fi//結束






NAME=user16
if [ `id -u $NAME` -eq 0 ]; then
? echo "Admin"
else
? echo "common user."
fi


練習:寫一個腳本
判斷當前系統(tǒng)上是否有用戶的默認shell為bash;
? ?如果有,就顯示有多少個這類用戶;否則,就顯示沒有這類用戶;
#!/bin/bash
#
grep "\<bash$" /etc/passwd &> /dev/null
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
grep "\<bash$" /etc/passwd | wc -l
else
echo "No such user."
fi

練習:寫一個腳本
給定一個文件,比如/etc/inittab?
判斷這個文件中是否有空白行;
如果有,則顯示其空白行數(shù);否則,顯示沒有空白行。
#!/bin/bash
A=`grep '^$' /etc/inittab | wc -l`
if [ $A -gt 0 ]; then
?echo "$A"
else
?echo "meiyoukongbaihang"
fi
? ? ? ? ? ? ? ??
?
#!/bin/bash
FILE=/etc/inittab
if [ ! -e $FILE ]; then
? echo "No $FILE."
? exit 8
fi


if grep "^$" $FILE &> /dev/null; then
? echo "Total blank lines: `grep "^$" $FILE | wc -l`."?
else
? echo "No blank line."
fi


練習:寫一個腳本
給定一個用戶,判斷其UID與GID是否一樣
如果一樣,就顯示此用戶為“good guy”;否則,就顯示此用戶為“bad guy”。
#!/bin/bash
USERNAME=user1
USERID=`id -u $USERNAME`
GROUPID=`id -g $USERNAME`
if [ $USERID -eq $GROUPID ]; then
? echo "Good guy."
else
? echo "Bad guy."
fi


進一步要求:不使用id命令獲得其id號;


#!/bin/bash
#
USERNAME=user1
if ! grep "^$USERNAME\>" /etc/passwd &> /dev/null; then
? echo "No such user: $USERNAME."
? exit 1
fi


USERID=`grep "^$USERNAME\>" /etc/passwd | cut -d: -f3`
GROUPID=`grep "^$USERNAME\>" /etc/passwd | cut -d: -f4`
if [ $USERID -eq $GROUPID ]; then
? echo "Good guy."
else
? echo "Bad guy."
fi


練習:寫一個腳本
給定一個用戶,獲取其密碼警告期限;
而后判斷用戶密碼使用期限是否已經(jīng)小于警告期限;
提示:計算方法,最長使用期限減去已經(jīng)使用的天數(shù)即為剩余使用期限;

如果小于,則顯示“Warning”;否則,就顯示“OK”。


圓整:丟棄小數(shù)點后的所有內容


#!/bin/bash
W=`grep "student" /etc/shadow | cut -d: -f6`
S=`date +%s`
T=`expr $S/86400`
L=`grep "^student" /etc/shadow | cut -d: -f5`
N=`grep "^student" /etc/shadow | cut -d: -f3`
SY=$[$L-$[$T-$N]]


if [ $SY -lt $W ]; then
? echo 'Warning'
else
? echo 'OK'
fi




練習:寫一個腳本
判定命令歷史中歷史命令的總條目是否大于1000;如果大于,則顯示“Some command will gone.”;否則顯示“OK”。


shell中如何進行算術運算:
A=3
B=6
1、let 算術運算表達式
let C=$A+$B
2、$[算術運算表達式]
C=$[$A+$B]
3、$((算術運算表達式))
C=$(($A+$B))
4、expr 算術運算表達式,表達式中各操作數(shù)及運算符之間要有空格,而且要使用命令引用
C=`expr $A + $B`


條件判斷,控制結構:


單分支if語句
if 判斷條件; then
? statement1
? statement2
? ...
fi


雙分支的if語句:
if 判斷條件; then
statement1
statement2
...
else
statement3
statement4
...
fi


多分支的if語句:
if 判斷條件1; then
? statement1
? ...
elif 判斷條件2; then
? statement2
? ...
elif 判斷條件3; then
? statement3
? ...
else
? statement4
? ...
fi






測試方法:
[ expression ]
[[ expression ]]
test expression


bash中常用的條件測試有三種:
整數(shù)測試:
-eq: 測試兩個整數(shù)是否相等;比如 $A -eq $B
-ne: 測試兩個整數(shù)是否不等;不等,為真;相等,為假;
-gt: 測試一個數(shù)是否大于另一個數(shù);大于,為真;否則,為假;
-lt: 測試一個數(shù)是否小于另一個數(shù);小于,為真;否則,為假;
-ge: 大于或等于
-le:小于或等于


INT1=63
INT2=77
[ $INT1 -eq $INI2 ]
[[ $INT1 -eq $INT2 ]]
test $INT1 -eq $INT2 ?

文件測試:
-e FILE:測試文件是否存在
-f FILE: 測試文件是否為普通文件
-d FILE: 測試指定路徑是否為目錄
-r FILE: 測試當前用戶對指定文件是否有讀取權限;
-w
-x


[ -e /etc/inittab ]
[ -x /etc/rc.d/rc.sysinit ]


練習:寫一個腳本
給定一個文件:
如果是一個普通文件,就顯示之;
如果是一個目錄,亦顯示之;
否則,此為無法識別之文件;


定義腳本退出狀態(tài)碼


exit: 退出腳本
exit #
如果腳本沒有明確定義退出狀態(tài)碼,那么,最后執(zhí)行的一條命令的退出碼即為腳本的退出狀態(tài)碼;




測試腳本是否有語法錯誤:
bash -n 腳本


bash -x 腳本:單步執(zhí)行






bash變量的類型:
本地變量:
set VARNAME=VALUE: 作用域為整個bash進程;
引用變量 $(varname)
局部變量:
local VARNAME=VALUE:作用域為當前代碼段;


環(huán)境變量:作用域為當前shell進程及其子進程;
export VARNAME=VALUE
VARNAME=VALUE
export VARNAME
“導出”
腳本在執(zhí)行時會啟動一個子shell進程
命令行中啟動的腳本會繼承當前shell環(huán)境變量
系統(tǒng)自動執(zhí)行的腳本(非命令行啟動)就需要自我定義需要各環(huán)境變量
位置變量:?
$1, $2, ...
shift
特殊變量:
$?
$#:參數(shù)的個數(shù)
$*: 參數(shù)列表
$@:參數(shù)列表

./filetest.sh /etc/fstab /etc/inittab
$1: /etc/fstab
$2: /etc/inittab


練習:寫一腳本
能接受一個參數(shù)(文件路徑)
判定:此參數(shù)如果是一個存在的文件,就顯示“OK.”;否則就顯示"No such file."


練習:寫一個腳本
給腳本傳遞兩個參數(shù)(整數(shù));
顯示此兩者之和,之乘積;
#!/bin/bash
#
if [ $# -lt 2 ]; then
? echo "Usage: cacl.sh ARG1 ARG2"
? exit 8
fi


echo "The sum is: $[$1+$2]."
echo "The prod is: $[$1*$2]."



練習:寫一個腳本,完成以下任務
1、使用一個變量保存一個用戶名;
2、刪除此變量中的用戶,且一并刪除其家目錄;
3、顯示“用戶刪除完成”類的信息


bash:?


引用變量:${VARNAME}, 括號有時可省略。

整型,8bit: 256
0-255, 溢出

變量:
1,10000
10:16bit
10: 1010, 8bit

編程能力:
腳本編程

#abc
# hello world
? ?# hi world

練習:
傳遞一個用戶名參數(shù)給腳本,判斷此用戶的用戶名跟其基本組的組名是否一致,并將結果顯示出來。

字符測試:
==:測試是否相等,相等為真,不等為假
!=: 測試是否不等,不等為真,等為假
>
<
-n string: 測試指定字符串 是否為空,空則真,不空則假
-z string: 測試指定字符串是否不空,不空為真,空則為假


練習:寫一個腳本
傳遞一個參數(shù)(單字符就行)給腳本,如參數(shù)為q,就退出腳本;否則,就顯示用戶的參數(shù);


練習:寫一個腳本
傳遞一個參數(shù)(單字符就行)給腳本,如參數(shù)為q、Q、quit或Quit,就退出腳本;否則,就顯示用戶的參數(shù);
#!/bin/bash
#
if [ $1 = 'q' ];then
? echo "Quiting..."
? exit 1
elif [ $1 = 'Q' ];then
? echo "Quiting..."
? exit 2 ?
elif [ $1 = 'quit' ];then
? echo "Quiting..."
? exit 3?
elif [ $1 = 'Quit' ];then
? echo "Quiting..."
? exit 4 ?
else
? echo $1
fi




練習:
if [ $# -lt 2 ];
傳遞三個參數(shù)給腳本,第一個為整數(shù),第二個為算術運算符,第三個為整數(shù),將計算結果顯示出來,要求保留兩位精度。形如:
./calc.sh 5 / 2


#!/bin/bash
#
A=$1
x=$2
B=$3
result= echo "scale=2;$A$x$B;"|bc
echo $result


etco "scale=2;111/22" | bc ? //結果為5.04


練習:
傳遞3個參數(shù)給腳本,參數(shù)均為用戶名。將此些用戶的帳號信息提取出來后放置于/tmp/testusers.txt文件中,并要求每一行行首有行號。
egrep “$1|$2|$3” /etc/passwd >>/tmp/a
cat ?n /tmp/a > /tmp/test0
rm ?rf a


寫一個腳本:
判斷當前主機的CPU生產(chǎn)商,其信息在/proc/cpuinfo文件中vendor id一行中。
如果其生產(chǎn)商為AuthenticAMD,就顯示其為AMD公司;
如果其生產(chǎn)商為GenuineIntel,就顯示其為Intel公司;
否則,就說其為非主流公司;
#!/bin/bash
VENDOR_ID=`grep vendor_id /proc/cpuinfo | head -1 | cut -d' ' -f2`?
if [ $VENDOR_ID == "AuthenticAMD" ]; then
? ? echo "AMD company"
elif [ $VENDOR_ID == "GenuineIntel" ]; then
? ? echo "Intel company"
fi


寫一個腳本:
給腳本傳遞三個整數(shù),判斷其中的最大數(shù)和最小數(shù),并顯示出來。
MAX=0
MAX -eq $1
MAX=$1
MAX -lt $2
MAX=$2
例:比較三個數(shù)的大小


echo -n "Enter three number:"
read a b c
if [ $a -gt $b ];then
?t=$a;a=$b;b=$t;
fi
if [ $a -gt $c ];then
?t=$a;a=$c;c=$t;
fi
if [ $b -gt $c ];then
?t=$b;b=$c;c=$t;
fi
echo "From small to big:$a,$b,$c"




例:求1到100的和
#!/bin/bash
declare ?-i SUM=0
for I in {1..100};do
? ? ? SUM=$[$SUM+$I]
done
echo “The SUM is :$SUM。”


循環(huán):進入條件,退出條件
for
while
until


for 變量 in 列表; do
? 循環(huán)體
done


for I in 1 2 3 4 5 6 7 8 9 10; do
? 加法運算
done


遍歷完成之后,退出;


如何生成列表:
{1..100}
`seq [起始數(shù) [步進長度]] 結束數(shù)`

1,...,100


declare -i SUM=0
integer
-x//環(huán)境變量

寫一個腳本:
1、設定變量FILE的值為/etc/passwd
2、依次向/etc/passwd中的每個用戶問好,并顯示對方的shell,形如: ?
Hello, root, your shell: /bin/bash
#!/bin/bash
for I in `cat /etc/passwd |grep 'bash'`;do
? ? ? ?echo"hello `echo $I |cut -d: -f1` your bash"
done
3、統(tǒng)計一共有多少個用戶


for I in `seq 1 $LINES`; do echo "Hello, `head -n $I /etc/passwd | tail -1 | cut -d: -f1`"; done


只向默認shell為bash的用戶問聲好




寫一個腳本:
1、添加10個用戶user1到user10,密碼同用戶名;但要求只有用戶不存在的情況下才能添加;
#!/bin/bash
if [ $1 == add];then
for I in{1..10};do
? ? ? ?! id user$I &&useradd user$I -puser$I
done
elif [ $1 == del];then
? ? ? ?for I in {1..10};do
? ? ? ? ? ? ? id user$I >/dev/null &&userdel user$I
? ? ? ?done
else
? ? ? ?echo "paramiter wrong"
fi
擴展:
接受一個參數(shù):
add: 添加用戶user1..user10
del: 刪除用戶user1..user10
其它:退出
adminusers user1,user2,user3,hello,hi

寫一個腳本:
計算100以內所有能被3整除的正整數(shù)的和;
取模,取余:%
3%2=1
100%55=45

寫一個腳本:
let I=$[$I+1]
SUM=$[$SUM+$I]

let SUM+=$I


let I+=1 相當于 let I++

-=
let I-=1 相當于 let I--

++I, --I

*=
/=
%=

測試:
整數(shù)測試:
-eq: 測試兩個整數(shù)是否相等;比如 $A -eq $B
-ne: 測試兩個整數(shù)是否不等;不等,為真;相等,為假;
-gt: 測試一個數(shù)是否大于另一個數(shù);大于,為真;否則,為假;
-lt: 測試一個數(shù)是否小于另一個數(shù);小于,為真;否則,為假;
-ge: 大于或等于
-le:小于或等于
字符測試:
==:測試是否相等,相等為真,不等為假
!=: 測試是否不等,不等為真,等為假
>
<
-n string: 測試指定字符串 是否為空,空則真,不空則假
-z string: 測試指定字符串是否不空,不空為真,空則為假

文件測試:
-e FILE:測試文件是否存在
-f FILE: 測試文件是否為普通文件
-d FILE: 測試指定路徑是否為目錄
-r FILE: 測試當前用戶對指定文件是否有讀取權限;
-w
-x

if [ $# -gt 1 ]; then


組合測試條件
-a: 與關系
-o: 或關系
!: 非關系

if [ $# -gt 1 -a $# -le 3 ]
if [ $# -gt 1 ] && [ $# -le 3 ]


生成隨機數(shù)?
RANDOM: 0-32768


隨機數(shù)生成器:熵池
/dev/random:
/dev/urandom:


寫一個腳本,利用RANDOM生成10個隨機數(shù),并找 出其中的最大值,和最小值;
#!/bin/bash
#
declare -i MAX=0
declare -i MIN=0


for I in {1..10}; do
? MYRAND=$RANDOM
? [ $I -eq 1 ] && MIN=$MYRAND
? if [ $I -le 9 ]; then
? ? echo -n "$MYRAND,"
? else
? ? echo "$MYRAND"
? fi
? [ $MYRAND -gt $MAX ] && MAX=$MYRAND
? [ $MYRAND -lt $MIN ] && MIN=$MYRAND
done


echo $MAX, $MIN


面向過程
控制結構
順序結構
選擇結構
循環(huán)結構


選擇結構:
if: 單分支、雙分支、多分支
if CONDITION; then
? statement
? ...
fi


if CONDITION; then
? statement
? ...
else
? statement
? ...
fi


if CONDITION1; then
? statement
? ...
elif CONDITION2; then
? statement
? ...
esle
? statement
? ...
fi




case語句:選擇結構


case SWITCH in?
value1)
? statement
? ...
? ;;
value2)
? statement
? ...
? ;;
*)
? statement
? ...
? ;;
esac


a-z
A-Z
0-9
[abc]


只接受參數(shù)start,stop,restart,status其中之一
#!/bin/bash
#
DEBUG=0
ADD=0
DEL=0


for I in `seq 0 $#`; do
? if [ $# -gt 0 ]; then
?case $1 in
?-v|--verbose)
DEBUG=1
shift ;;
?-h|--help)
echo "Usage: `basename $0` --add USER_LIST --del USER_LIST -v|--verbose -h|--help"
exit 0
;;
?--add)
ADD=1
ADDUSERS=$2
shift 2
;;
?--del)
DEL=1
DELUSERS=$2
shift 2
;;
?*)
echo "Usage: `basename $0` --add USER_LIST --del USER_LIST -v|--verbose -h|--help"
exit 7
;;
? ? esac
? fi
done


if [ $ADD -eq 1 ]; then
? for USER in `echo $ADDUSERS | sed 's@,@ @g'`; do
? ? if id $USER &> /dev/null; then
? ? ? [ $DEBUG -eq 1 ] && echo "$USER exists."
? ? else
? ? ? useradd $USER
? ? ? [ $DEBUG -eq 1 ] && echo "Add user $USER finished."
? ? fi
? done
fi


if [ $DEL -eq 1 ]; then
? for USER in `echo $DELUSERS | sed 's@,@ @g'`; do
? ? if id $USER &> /dev/null; then
? ? ? userdel -r $USER
? ? ? [ $DEBUG -eq 1 ] && echo "Delete $USER finished."
? ? else
? ? ? [ $DEBUG -eq 1 ] && echo "$USER not exist."
? ? fi
? done
fi


練習:寫一個腳本showlogged.sh,其用法格式為:
showlogged.sh -v -c -h|--help
其中,-h選項只能單獨使用,用于顯示幫助信息;-c選項時,顯示當前系統(tǒng)上登錄的所有用戶數(shù);如果同時使用了-v選項,則既顯示同時登錄的用戶數(shù),又顯示登錄的用戶的相關信息;如
Logged users: 4.?


They are:
root ? ? tty2 ? ? ? ? Feb 18 02:41
root ? ? pts/1 ? ? ? ?Mar ?8 08:36 (172.16.100.177)
root ? ? pts/5 ? ? ? ?Mar ?8 07:56 (172.16.100.177)
hadoop ? pts/6 ? ? ? ?Mar ?8 09:16 (172.16.100.177)


#!/bin/bash
#
declare -i SHOWNUM=0
declare -i SHOWUSERS=0


for I in `seq 1 $#`; do
? if [ $# -gt 0 ]; then
? ? case $1 in
? ? -h|--help)
? ? ? echo "Usage: `basename $0` -h|--help -c|--count -v|--verbose"
? ? ? exit 0 ;;
? ? -v|--verbose)
? ? ? let SHOWUSERS=1
? ? ? shift ;;
? ? -c|--count)
? ? ? let SHOWNUM=1
? ? ? shift ;;
? ? *)
? ? ? echo "Usage: `basename $0` -h|--help -c|--count -v|--verbose"
? ? ? exit 8 ;;
? ? esac
? fi
done


if [ $SHOWNUM -eq 1 ]; then
? echo "Logged users: `who | wc -l`."
? if [ $SHOWUSERS -eq 1 ]; then
? ? echo "They are:"
? ? who
? fi
fi


腳本編程:
順序結構
選擇結構
if
case
循環(huán)結構
for
while
until

while循環(huán):適用于循環(huán)次數(shù)未知的場景,要有退出條件
語法:
while CONDITION; do
?statement
?...
done

計算100以內所有正整數(shù)的和


#!/bin/bash
declare -i I=1
declare -i SUM=0


while [ $I -le 100 ]; do
? let SUM+=$I
? let I++
done


echo $SUM


練習:轉換用戶輸入的字符為大寫,除了quit:
#!/bin/bash
#
read -p "Input something: " STRING


while [ $STRING != 'quit' ]; do
? echo $STRING | tr 'a-z' 'A-Z'
? read -p "Input something: " STRING
done


練習:每隔5秒查看hadoop用戶是否登錄,如果登錄,顯示其登錄并退出;否則,顯示當前時間,并說明hadoop尚未登錄:
#!/bin/bash
#
who | grep "hadoop" &> /dev/null
RETVAL=$?


while [ $RETVAL -ne 0 ]; do
? echo "`date`, hadoop is not log."?
? sleep 5
? who | grep "hadoop" &> /dev/null
? RETVAL=$?
done


echo "hadoop is logged in."


寫一個腳本:
1) 顯示一個菜單給用戶:?
d|D) show disk usages.
m|M) show memory usages.
s|S) show swap usages.
*) quit.
2) 當用戶給定選項后顯示相應的內容;
? ?
擴展:
當用戶選擇完成,顯示相應信息后,不退出;而讓用戶再一次選擇,再次顯示相應內容;除了用戶使用quit;
#!/bin/bash
#
cat << EOF
d|D) show disk usages.
m|M) show memory usages.
s|S) show swap usages.
*) quit.
EOF


read -p "Your choice: " CHOICE
while [ $CHOICE != 'quit' ];do
? case $CHOICE in
? d|D)
? ? echo "Disk usage: "
? ? df -Ph ;;
? m|M)
? ? echo "Memory usage: "
? ? free -m | grep "Mem" ;;
? s|S)
? ? echo "Swap usage: "
? ? free -m | grep "Swap" ;;
? *)
? ? echo "Unknown.." ;;
? esac


read -p "Again, your choice: " CHOICE
done

腳本編程控制結構:
順序
選擇
if
case
循環(huán)
for?
while
until


while CONDITION; do
? statment
done


進入循環(huán):條件滿足
退出循環(huán):條件不滿足

until CONDITION; do
? statement
? ...
done


進入循環(huán):條件不滿足
退出循環(huán):條件滿足


for 變量 in 列表; do?
循環(huán)體
done

for (( expr1 ; expr2 ; expr3 )); do?
? 循環(huán)體
done

寫一個腳本:
1、通過ping命令測試192.168.0.151到192.168.0.254之間的所有主機是否在線,
如果在線,就顯示"ip is up.",其中的IP要換為真正的IP地址,且以綠色顯示;
如果不在線,就顯示"ip is down.",其中的IP要換為真正的IP地址,且以紅色顯示;


要求:分別使用while,until和for(兩種形式)循環(huán)實現(xiàn)。




寫一個腳本,完成以下功能:
1、提示用戶輸入一個用戶名;
2、顯示一個菜單給用戶,形如:
cat <<EOF
U|u ?show UID
G|g ?show GID
S|s ?show SHELL
Q|q ?quit
EOF
?#!bin/bash
? ? ? 2 #
? ? ? 3 cat << EOF
? ? ? 4 U|u ?show UID
? ? ? 5 G|g ?show GID
? ? ? 6 S|s ?show SHELL
? ? ? 7 Q|q ?quit
? ? ? 8 EOF
? ? ? 9 read -p "You choice: " CHOICE
? ? ?10 until [ $CHOICE == 'q' -o $CHOICE == 'Q' ]
? ? ?11 do
? ? ?12 case $CHOICE in
? ? ?13 d|D) df -lh;;
? ? ?14 m|M) free -m | grep "^Mem";;
? ? ?15 s|S) free -m | grep "^Swap";;
? ? ?16 *) read -p "You choice,again: " CHOICE;;
? ? ?17 esac
? ? ?18 read -p "You choice: " CHOICE
? ? ?19 done

函數(shù):功能, function


代碼重用:


庫:so




腳本編程之函數(shù):


function: 功能


結構化編程,不能獨立運行,需要調用時執(zhí)行,可以被多次調用


定義一個函數(shù):
function FUNCNAME {
? command
}


FUNCNAME() {
? command
}




自定義執(zhí)行狀態(tài)返回值:
return #
0-255


接受參數(shù)的函數(shù):
./a.sh m n?
$1: m
$2: n


sum()
{
echo $1+$2
TWOINT 5 6


$1: 5
$2: 6


練習:寫一個腳本,判定192.168.0.200-192.168.0.254之間的主機哪些在線。要求:
1、使用函數(shù)來實現(xiàn)一臺主機的判定過程;
2、在主程序中來調用此函數(shù)判定指定范圍內的所有主機的在線情況。


#!/bin/bash
#
PING() {
? for I in {200..254};do
? ? if ping -c 1 -W 1 192.168.0.$I &> /dev/null; then
? ? ? echo "192.168.0.$I is up."
? ? else
? ? ? echo "192.168.0.$I is down."
? ? fi
? done
}


PING

#!/bin/bash
#
PING() {
? ? if ping -c 1 -W 1 $1 &> /dev/null; then
? ? ? echo "$1 is up."
? ? else
? ? ? echo "$1 is down."
? ? fi
}


for I in {200..254}; do
? PING 192.168.0.$I
done




#!/bin/bash
#
PING() {
? ? if ping -c 1 -W 1 $1 &> /dev/null; then
? ? ? return 0
? ? else
? ? ? return 1
? ? fi
}


for I in {200..254}; do
? PING 192.168.0.$I
? if [ $? -eq 0 ]; then
? ? echo "192.168.0.$I is up."
? else
? ? echo "192.168.0.$I is down."
? fi
done




寫一個腳本:使用函數(shù)完成
1、函數(shù)能夠接受一個參數(shù),參數(shù)為用戶名;
? ?判斷一個用戶是否存在
? ?如果存在,就返回此用戶的shell和UID;并返回正常狀態(tài)值;
? ?如果不存在,就說此用戶不存在;并返回錯誤狀態(tài)值;
2、在主程序中調用函數(shù);


擴展1:在主程序中,讓用戶自己輸入用戶名后,傳遞給函數(shù)來進行判斷;
擴展2:在主程序中,輸入用戶名判斷后不退出腳本,而是提示用戶繼續(xù)輸入下一個用戶名;如果用戶輸入的用戶不存在,請用戶重新輸入;但如果用戶輸入的是q或Q就退出;


#!/bin/bash
#
user () {
if id $1 &> /dev/null ;then
echo "`grep ^$1 ?/etc/passwd | cut -d: -f3,7`"
? ?return 0
else
? ?echo "no $1"
? ? return 1
fi
}
read -p "please input username:" username
until [ $username == q -o $username == Q ]; do
user $username
if [ $? == 0 ];then
read -p "please input again:" username
else
read -p "no $username,please input again:" username
fi
done



函數(shù)也可以接受參數(shù), 即可以向函數(shù)傳遞參數(shù)




函數(shù)接受一個用戶名參數(shù),顯示此用戶的shell和UID;

寫一個函數(shù):接受一命令參數(shù)ls


/bin/ls, /mnt/sysroot/bin/ls


/sbin/ifconfig, /mnt/sysroot/sbin/ifconfig

腳本編程知識點:
1、變量中字符的長度:${#VARNAME}
2、變量賦值等:
${parameter:-word}:如果parameter為空或未定義,則變量展開為“word”;否則,展開為parameter的值;
${parameter:+word}:如果parameter為空或未定義,不做任何操作;否則,則展開為“word”值;
${parameter:=word}:如果parameter為空或未定義,則變量展開為“word”,并將展開后的值賦值給parameter;
${parameter:offset}
${parameter:offset:length}:取子串,從offset處的后一個字符開始,取lenth長的子串;


3、腳本配置文件
/etc/rc.d/init.d/服務腳本
服務腳本支持配置文件:/etc/sysconfig/服務腳本同名的配置文件
.conf為配置文件。
#!/bin/bash
#
./root/a.conf ?//把a.conf這個文件加載進來


4、局部變量
local VAR_NAME=//必須用local


a=1


test() {
? a=$[3+4]
}


test
for I in `seq $a 10`; do
? echo $I
done ?


5、命令mktemp
創(chuàng)建臨時文件或目錄


mktemp /tmp/file.XX
-d: 創(chuàng)建為臨時目錄

6、信號
kill -SIG(NAL) PID
1: HUP
2: INT//終止
9: KILL
15: TERM

腳本中,能實現(xiàn)信號捕捉,但9和15無法捕捉


Ctrl+c: SIGINT


trap命令:
trap 'COMMAND' 信號列表?

7、一行執(zhí)行多個語句,語句間用分號分隔

總結

以上是生活随笔為你收集整理的linux bash脚本编程知识点的全部內容,希望文章能夠幫你解決所遇到的問題。

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

六月丁香色婷婷 | 婷婷久久网 | 婷婷丁香在线视频 | 亚洲人人av | 久免费视频 | 青青河边草免费观看完整版高清 | 干 操 插| www.天天操.com | 99精品国产视频 | 中文字幕免费国产精品 | 91亚色在线观看 | 91精品视频网站 | 久久精品精品电影网 | 97香蕉久久国产在线观看 | 亚洲资源网 | 色综合夜色一区 | 天天av综合网 | 欧美日韩国产在线观看 | 成人国产精品av | 欧美精品日韩 | 日日夜夜干| 狠狠色伊人亚洲综合网站色 | 日韩欧美一区二区三区免费观看 | 日本电影久久 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 91重口视频 | 国产成人精品一区二区三区在线观看 | 久久er99热精品一区二区 | 国产亚洲一级高清 | 午夜av一区 | av手机版 | 欧美另类老妇 | 亚洲永久精品视频 | 国产免费久久av | 成人黄色电影免费观看 | 黄色亚洲大片免费在线观看 | 丁香婷婷在线 | 男女激情免费网站 | 成人羞羞免费 | 一级黄色片毛片 | 日韩精品一区二区在线观看 | 日日夜夜免费精品 | 日韩av男人的天堂 | 国产精品久久久久久久妇 | 人人干网| 久久99久久99精品 | 91| 91精品国产成人www | 成人av一区二区兰花在线播放 | 天天射夜夜爽 | 日韩在线免费视频观看 | 色中色综合 | 久久 亚洲视频 | 福利视频区 | 国产综合片 | 国产精品va最新国产精品视频 | 草久草久 | 精品久久久久久一区二区里番 | 韩国一区视频 | 久久大视频 | 国产精品久久久久久久午夜片 | 午夜视频在线观看一区二区三区 | 最近中文字幕视频网 | 久久精品国产亚洲 | 国产区av在线 | 久操视频在线观看 | 91黄色小网站 | 日韩一区二区三区不卡 | 国产免费观看久久 | 国产91电影在线观看 | 成人免费一级 | 黄色不卡av | 九九视频热| 91麻豆精品国产自产在线 | 在线 国产 日韩 | 欧美一区免费在线观看 | 97人人模人人爽人人少妇 | 成人黄色在线观看视频 | 欧美在线视频精品 | 五月婷婷激情综合网 | 精品嫩模福利一区二区蜜臀 | 最近更新中文字幕 | 日韩在线观看小视频 | 中文字幕一二三区 | 91精品久久久久久 | 国产在线精品一区 | 日韩肉感妇bbwbbwbbw | 欧美日韩1区 | 99久久精品费精品 | 最近中文字幕第一页 | 亚洲一区欧美激情 | 久久综合成人网 | 免费大片黄在线 | 国产麻豆精品久久一二三 | 国产欧美在线一区二区三区 | 欧美另类性| 国产精品久久久亚洲 | 日韩精品不卡在线观看 | 日韩电影中文字幕在线观看 | 亚洲综合视频在线播放 | 欧美一区二区三区免费看 | 亚洲第一中文字幕 | 夜夜骑日日操 | 免费网址你懂的 | 亚洲国产欧美在线看片xxoo | 久久爱资源网 | 中文亚洲欧美日韩 | 亚洲午夜久久久久久久久 | 久久午夜免费视频 | 天天色天天综合 | 国产精品一区二区三区久久 | 中文字幕91 | 欧美日韩免费观看一区二区三区 | 五月婷婷狠狠 | 欧美射射射 | 国产手机视频在线观看 | 免费毛片一区二区三区久久久 | 偷拍精偷拍精品欧洲亚洲网站 | 久草在线手机视频 | 亚洲资源视频 | 91麻豆精品国产91久久久久久久久 | 在线看日韩| 成人午夜黄色 | 欧美精品一区二区免费 | av一区二区三区在线播放 | 久久综合中文字幕 | 国产精品国产三级在线专区 | 久久国产精品影视 | 超碰激情在线 | 国产精品久久久久久爽爽爽 | 人成免费网站 | 久久99国产精品久久99 | 色婷婷天天干 | 国产成人精品一区二区三区在线 | 久草在线视频看看 | 久久国内视频 | 欧美成人手机版 | 免费激情网 | 日韩国产精品一区 | 婷婷丁香自拍 | 成人a v视频 | 国产中的精品av小宝探花 | 热久久免费视频 | 久久久久久欧美二区电影网 | 午夜精品电影一区二区在线 | 日韩不卡高清 | 国产精品伦一区二区三区视频 | 色婷婷激情综合 | 久久热首页 | 国产高清av在线播放 | 国产精品一区在线 | 国产偷在线| 玖玖视频 | 美女国产网站 | 日韩av电影中文字幕在线观看 | 一区二区三区手机在线观看 | 日韩电影在线一区二区 | 日韩一区二区免费在线观看 | 久久99精品国产91久久来源 | 五月天国产 | 成人精品999| 天堂在线一区二区 | 婷婷国产一区二区三区 | 五月天丁香综合 | 色成人亚洲网 | 免费在线观看国产黄 | 亚洲天堂网在线观看视频 | 久久不射影院 | 精久久久久 | 久久精品国产成人 | 99re亚洲国产精品 | 色多多污污| 成人av高清在线观看 | 国产片免费在线观看视频 | 在线影院 国内精品 | 精品专区一区二区 | 黄色av在 | 久久久久久福利 | 免费在线看v| 亚洲欧美日韩国产精品一区午夜 | 天天综合精品 | 久久国产精品99久久久久 | 在线天堂中文在线资源网 | 91网在线看| 国产精品一区二区三区在线 | 欧美天堂影院 | 亚洲精品一区二区18漫画 | 久操视频在线免费看 | 亚洲午夜精 | 国产精品久久久久久久久久久久 | 亚洲日本精品视频 | 欧美人人爱 | 韩国精品在线观看 | 久久久国产影院 | 免费av 在线 | av色一区| 日韩午夜一级片 | 国产高清在线a视频大全 | 欧美一级性 | 欧美另类高清 | 91 在线视频| 国内精品久久久久影院优 | 国产视频一区二区在线播放 | 91高清免费 | 亚洲第一区精品 | av免费在线网站 | 射射色 | 日日日操操 | 国产精品久久久久久久久久 | 欧美一性一交一乱 | av观看久久久 | 久久欧美综合 | 91在线观看高清 | 日韩欧美高清免费 | 久久综合中文字幕 | 黄色精品在线看 | 五月婷婷在线播放 | 99视频精品视频高清免费 | 91精品视频网站 | 九色91在线| 日韩专区视频 | 国产精品手机在线播放 | 在线小视频你懂的 | 在线国产日韩 | 99热这里只有精品在线观看 | 伊人狠狠干| 国产二区视频在线观看 | 亚洲欧美日韩国产一区二区 | 99久久精品费精品 | 在线视频18在线视频4k | 精品毛片在线 | 中文av在线播放 | 91成人在线观看高潮 | 久久久久久蜜桃一区二区 | 99热亚洲精品 | 免费三级黄色 | 97超碰成人 | 亚洲人人爱 | 天天干天天干天天干天天干天天干天天干 | www.av中文字幕.com | 91精品视频一区二区三区 | 日韩在线观看一区二区三区 | 亚洲精品免费播放 | 亚洲精品777 | 97成人精品视频在线观看 | 免费亚洲一区二区 | 久久免费的精品国产v∧ | 国产精品一区二区三区免费看 | 精品美女视频 | 亚洲欧美日韩精品久久久 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 日韩欧美区 | 欧美日在线观看 | 成人精品亚洲 | 在线国产不卡 | 国外调教视频网站 | 草久视频在线观看 | 在线观看免费成人 | 99精品欧美一区二区三区黑人哦 | av中文字幕在线播放 | 亚洲国内精品视频 | 久久99国产精品自在自在app | 99久久99久久免费精品蜜臀 | 国产成免费视频 | 免费网站黄色 | 免费h精品视频在线播放 | 狠狠色噜噜狠狠狠 | 日本夜夜草视频网站 | 又湿又紧又大又爽a视频国产 | 婷婷激情小说网 | 国内精品久久久久久久久久 | 免费看黄色91 | 国产精品一区专区欧美日韩 | 91正在播放| 最近更新好看的中文字幕 | 91精品久久久久久综合乱菊 | 91看片在线 | av看片网址| av成年人电影 | 欧美日韩伦理在线 | 午夜色影院 | 亚洲成年人免费网站 | 国产一区二区三区网站 | 亚洲免费国产视频 | 高清av免费看 | 国产免费高清 | 国产91国语对白在线 | 五月天久久综合网 | 欧美日韩免费网站 | 五月天网站在线 | 超碰在线网 | 国产超碰在线观看 | 婷婷久久网 | 五月天亚洲婷婷 | 国产一区在线观看免费 | 亚洲一区二区高潮无套美女 | 91精品视屏 | 六月丁香激情综合 | 狠狠操综合 | 69av视频在线观看 | 精品国产一二区 | 天堂av网在线 | 18国产精品白浆在线观看免费 | 中文字幕在线免费看线人 | 欧美另类色图 | 国产精品一区二区久久精品爱涩 | 九九免费观看视频 | 69xx视频 | 丁香一区二区 | 免费观看性生交大片3 | 综合网在线视频 | 欧美99精品| 日韩精品视频一二三 | 亚洲精品9 | 久久久久免费电影 | 国产不卡精品 | 婷婷在线免费观看 | 91成人小视频 | 久久99精品久久久久蜜臀 | 国产精品久久99精品毛片三a | 国产黄在线免费观看 | 日日夜夜网站 | 91精品亚洲影视在线观看 | 在线看国产| 在线观看成人毛片 | 午夜精品视频一区二区三区在线看 | 色婷婷99 | 国产 亚洲 欧美 在线 | 精品国产福利在线 | 日本在线观看中文字幕无线观看 | 亚洲成人av一区二区 | 天天天操操操 | 亚洲精品电影在线 | 黄色软件视频大全免费下载 | 日日干av| 一区二区三区在线免费播放 | 亚洲黄色免费 | 一区二区三区在线视频观看58 | 日本大尺码专区mv | 美女搞黄国产视频网站 | 日韩精品中文字幕在线观看 | 国产精品麻豆欧美日韩ww | 日韩欧美电影在线观看 | 日本久久不卡视频 | 日韩高清国产精品 | 成人黄色毛片 | 久久99国产视频 | 免费看的黄色小视频 | 91亚洲精品在线 | 亚洲天堂网视频 | 91福利视频在线 | 综合在线亚洲 | 久久新 | 成年一级片 | 国产精品欧美日韩 | 国产高清黄 | 国产主播99 | 婷婷免费在线视频 | 亚洲国产一二三 | 成人动漫一区二区三区 | 天天天干夜夜夜操 | 国产成人免费观看久久久 | 五月婷色 | 国产不卡在线观看 | 天堂av在线网址 | 香蕉视频国产在线 | 亚洲一区二区三区毛片 | 久草在线欧美 | 欧美激情精品久久久久 | 日韩久久久久久久久久 | 亚洲精品91天天久久人人 | 亚洲国产wwwccc36天堂 | 97在线视频免费播放 | 超碰在线日韩 | 色婷婷激情电影 | 色婷婷成人网 | 日韩一区二区三区高清免费看看 | 久久电影国产免费久久电影 | 成人免费观看网站 | 韩国三级一区 | 久草在线免费在线观看 | 91自拍视频在线 | 日韩精品久久久久久 | 99视频国产在线 | 国产91综合一区在线观看 | 99精品国产一区二区三区不卡 | 少妇按摩av | 国产欧美日韩精品一区二区免费 | 国产精品破处视频 | 一区精品在线 | 麻豆久久久久 | 天天干婷婷 | 精品伦理一区二区三区 | 免费在线观看av片 | 久草精品免费 | 天堂av网站 | 久久久国产精品麻豆 | 精品国产一区二区三区av性色 | 狠狠躁日日躁狂躁夜夜躁 | 成人小视频在线播放 | 91成人欧美 | 亚洲国产一区在线观看 | 中文字幕永久在线 | 五月婷婷中文网 | 一区二区三区在线观看 | www激情网 | 乱男乱女www7788 | 区一区二在线 | 狠狠狠狠狠狠狠 | 亚洲第一区精品 | 国产一区二区在线免费播放 | 精品国产自 | 中文字幕免费高清av | 日日夜夜天天久久 | 欧美精品少妇xxxxx喷水 | 午夜黄色一级片 | 国产精品一区二区视频 | 丁香九月激情 | 婷婷色av| 91大神视频网站 | 色婷婷亚洲综合 | 波多野结衣视频一区 | 欧美-第1页-屁屁影院 | 日本在线成人 | 久久99精品国产99久久 | 精品国产一区二区三区在线 | 久久中文字幕视频 | 成人免费观看完整版电影 | 蜜臀久久99精品久久久无需会员 | 成人av免费看 | 久久超| 久久久久免费看 | 久草久草在线观看 | 亚洲精品一区二区三区在线观看 | 日日操日日 | 成人午夜片av在线看 | 欧美日韩不卡一区二区三区 | 精品一二三四在线 | 国产亚洲欧美日韩高清 | 日本爽妇网 | 久久久久久久国产精品视频 | 欧美一区二区三区免费观看 | 色播六月天 | 中文字幕在线观看资源 | 激情久久五月 | 国产视频一区在线 | 国产91对白在线播 | 狠狠干五月天 | 五月婷婷在线视频观看 | 久久久久高清毛片一级 | 高清不卡免费视频 | 久久经典国产视频 | 国产91精品欧美 | 超级碰99 | 五月婷婷在线视频观看 | 欧美一区二区三区在线播放 | 久久久久激情视频 | 99精品黄色片免费大全 | 欧美日韩精品在线 | 男女激情片在线观看 | 五月婷婷一区 | 久久久久久久99 | 日韩在线观看a | 四虎国产 | 日韩精品免费在线观看视频 | 国产精品免费不卡 | 亚洲精品国产电影 | 日产中文字幕 | 国产精品成人免费 | 成人影音在线 | 国产精品美女久久久久久网站 | 免费网址在线播放 | 色99中文字幕| 91麻豆视频 | 麻豆影视网| 日日夜夜天天干 | 日本爱爱片 | 日韩videos| 免费午夜视频在线观看 | 久久dvd | 免费视频区| 日韩在线视频不卡 | 91一区啪爱嗯打偷拍欧美 | 在线免费av网站 | 中文字幕在线日亚洲9 | 久草热久草视频 | 一区二区三区福利 | 免费黄色在线 | www.夜夜操.com | 91看片淫黄大片在线播放 | 91av播放 | 久久综合福利 | www178ccom视频在线 | 亚洲专区免费观看 | 欧美乱码精品一区 | 成人久久视频 | 99久久精品国产毛片 | 麻豆传媒视频在线 | 中文字幕视频三区 | 亚洲精品视频大全 | 国产日韩欧美视频在线观看 | 免费看国产曰批40分钟 | 国产亚洲精品久久久久久无几年桃 | 丰满少妇麻豆av | 亚洲精品久久久久久久不卡四虎 | 婷婷伊人网 | 国产精品视频永久免费播放 | 国产中文字幕国产 | 国产午夜精品一区二区三区欧美 | 精品国产一区二区三区日日嗨 | 久久精品视频观看 | 国产一区二区三精品久久久无广告 | 四虎成人精品永久免费av | 91天堂素人约啪 | 97人人澡人人添人人爽超碰 | 久久久精品免费观看 | 欧美激情综合五月色丁香 | 亚洲精品18p | 9i看片成人免费看片 | 天天草天天操 | 国产亚洲视频在线观看 | 久久女同性恋中文字幕 | 免费福利视频导航 | 亚洲精品黄网站 | 在线免费黄色av | japanese黑人亚洲人4k | 国产在线观看国语版免费 | 亚洲欧洲精品一区二区精品久久久 | 日韩高清一二三区 | 91禁在线观看 | 色综合久久久久综合 | 六月丁香激情综合色啪小说 | av五月婷婷 | 91视频久久久 | 久久av伊人 | 久久精品久久精品久久39 | 国产在线传媒 | 久久视频这里只有精品 | 天天干,天天射,天天操,天天摸 | 精品无人国产偷自产在线 | 69欧美视频| 成人在线观看你懂的 | 色综合天天干 | 毛片一区二区 | 国产亚洲成人网 | 97超碰站 | 国产亚洲综合精品 | 天天鲁一鲁摸一摸爽一爽 | 最新中文字幕在线资源 | 免费黄色网址网站 | 日日噜噜噜噜夜夜爽亚洲精品 | 国产色爽| 综合天堂av久久久久久久 | 亚洲mv大片欧洲mv大片免费 | 天天插日日操 | 免费在线观看不卡av | 国产免费亚洲高清 | 久久精品专区 | 欧美午夜精品久久久久 | 久久国产精品99久久久久 | 激情丁香 | 超碰在线9 | 久久精品高清视频 | 粉嫩av一区二区三区四区在线观看 | 色综合久久88色综合天天免费 | 国产免费不卡 | 久久久免费观看 | 免费亚洲视频在线观看 | 国精产品999国精产 久久久久 | 欧美激情片在线观看 | 亚洲美女视频在线观看 | 夜夜天天干 | 最新国产一区二区三区 | 激情综合五月天 | 欧美日韩国产综合一区二区 | 成年人国产精品 | 亚洲国产影院 | 中文字幕第一页在线 | 亚洲精品一区二区18漫画 | 国产999免费视频 | 国色天香在线观看 | 久久久久国产成人精品亚洲午夜 | 精品xxx | 91丨九色丨国产丨porny精品 | 久久久精品日本 | 波多野结衣一区 | 久久久久女人精品毛片九一 | 国色天香永久免费 | 国产偷v国产偷∨精品视频 在线草 | 国产日韩欧美视频在线观看 | 日韩专区在线观看 | 国产香蕉久久 | 欧美日韩后 | 成人国产精品免费观看 | 69精品人人人人 | 青草视频在线播放 | 在线看小早川怜子av | 一区在线免费观看 | 2019中文字幕第一页 | 欧美一区二区三区不卡 | 四虎影视成人永久免费观看亚洲欧美 | 欧美日韩性生活 | 国产破处在线视频 | 国产高清视频在线免费观看 | 亚洲黄色免费电影 | 日韩精品一区二区三区免费视频观看 | 久久精品国产美女 | 久久精彩视频 | 97超碰在 | 国产999精品久久久影片官网 | 国产一级视频在线 | 精品国产一区二区三区男人吃奶 | 99精品一区二区三区 | 欧美日韩国产欧美 | 黄色成年片 | 日韩欧美精品在线观看视频 | 亚洲少妇xxxx | 欧美乱熟臀69xxxxxx | 麻豆91在线 | 黄色三级免费 | 久久精品99国产精品酒店日本 | 五月婷婷丁香综合 | 91精品播放 | 国内精品国产三级国产aⅴ久 | 国产91精品看黄网站 | 欧美一级片免费 | 国产精品久久久久久久久久久久午夜 | 丁香视频在线观看 | 日韩欧美电影网 | 欧美另类亚洲 | 91麻豆精品国产91久久久无限制版 | 免费高清在线一区 | 精品网站999www| 久久丝袜视频 | 欧美 日韩 国产 中文字幕 | 国产精品一区二区在线 | 国产一区欧美在线 | 日韩99热| 中文字幕麻豆 | 国产精品97 | 免费h漫在线观看 | 日韩免费电影 | 久久免费影院 | www久久国产 | 在线免费观看亚洲视频 | 久久精品一区二区 | 国产精品久久免费看 | 毛片一二区 | 亚洲精品乱码久久久久久高潮 | 亚洲激情视频在线观看 | 精品亚洲视频在线观看 | 亚洲天堂网视频 | 91毛片在线| 美女网站黄免费 | 久久久黄色av | 国产一区二区三区免费观看视频 | 天天干天天射天天操 | 一二区精品 | 黄色毛片观看 | 91九色网站 | 欧美a级免费视频 | 欧美性粗大hdvideo | 国产精品国产亚洲精品看不卡15 | 国产精品一区二区你懂的 | 日韩国产精品久久久久久亚洲 | 五月天伊人 | 精品国产乱子伦一区二区 | 午夜视频在线观看网站 | 91网免费看 | 一区二区三区免费在线观看视频 | 国产96在线视频 | 波多野结衣精品在线 | 国产成人一区二区啪在线观看 | 韩国一区在线 | 狠狠色丁香婷婷综合久小说久 | 韩国精品一区二区三区六区色诱 | 日韩高清免费电影 | 久久久午夜精品福利内容 | 日韩在线无 | 欧美日韩高清一区二区三区 | 久久免费在线观看 | 免费看国产精品 | 四虎永久网站 | 久草综合视频 | 日产av在线播放 | 日韩| 中文字幕中文字幕 | 亚洲欧洲日韩 | 日韩欧美91| 精品亚洲视频在线 | www.99av| 日韩在线视频网站 | 午夜精品一二区 | 夜夜干天天操 | 深夜激情影院 | 欧美另类xxx | 国产精品高清在线观看 | 免费看成人片 | 久久久综合 | 亚洲成人蜜桃 | 日韩在线中文字幕视频 | 午夜精品婷婷 | 少妇高潮流白浆在线观看 | 午夜国产福利视频 | 亚洲一区精品人人爽人人躁 | 中文字幕九九 | 亚洲第一av在线播放 | 亚洲激精日韩激精欧美精品 | 色悠悠久久综合 | 久久国产精品99久久久久久丝袜 | 不卡国产在线 | 免费看一级特黄a大片 | 岛国av在线不卡 | 深爱婷婷 | 日本久久久久久 | 国产成年免费视频 | 2021国产视频| 午夜精品电影 | 久久躁日日躁aaaaxxxx | 精品国产91亚洲一区二区三区www | 久久电影国产免费久久电影 | 成人三级视频 | 中文字幕第一页在线播放 | 国产在线观看不卡 | 亚洲精品在线网站 | 久久久99国产精品免费 | 97成人精品视频在线观看 | 国产伦精品一区二区三区照片91 | 97视频在线观看播放 | 996久久国产精品线观看 | 亚洲欧美国产精品18p | 欧产日产国产69 | www国产亚洲精品久久网站 | 日日夜夜精品免费观看 | 91 中文字幕 | 胖bbbb搡bbbb擦bbbb | 国产一区成人 | 99久久夜色精品国产亚洲 | 波多野结衣在线播放一区 | 免费观看国产视频 | 亚洲美女视频在线 | avlulu久久精品 | 中文字幕久久精品一区 | av蜜桃在线 | 精品国产视频在线 | 99久久精品免费看国产一区二区三区 | 亚洲激情国产精品 | 国产专区视频在线观看 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美日韩在线视频观看 | 久久免费精品视频 | 午夜国产在线 | 欧美激精品 | 不卡国产在线 | 欧美大片大全 | 欧美精品久久久久久久久久白贞 | 欧美最猛性xxxxx亚洲精品 | 麻豆视频www | 久久精品视频中文字幕 | 在线看中文字幕 | 中文字幕在线视频一区二区 | 日韩免费精品 | 黄色av影视 | 成人国产精品久久久 | 久久av伊人 | 97**国产露脸精品国产 | 国产精品久久久久9999 | 四虎www.| 亚洲精品国产精品国自产在线 | 久久久久久国产精品久久 | 久久国产精品久久w女人spa | 天天鲁天天干天天射 | 99夜色 | 国产精品视频地址 | 久久五月网 | 日韩av不卡在线观看 | 亚洲欧洲精品视频 | 中文字幕在线视频第一页 | 国产精品久久网站 | 久久久亚洲电影 | 久久99网| 欧美 日韩 国产 成人 在线 | 日韩视频一区二区三区在线播放免费观看 | 999成人网 | 天天操天天操天天操天天 | 日韩电影在线视频 | 四虎影视av | 欧美人zozo | 亚洲欧美日韩精品久久奇米一区 | 中文字幕日本在线 | 五月天激情视频在线观看 | 五月婷婷,六月丁香 | 91视频在线网址 | 国产麻豆精品传媒av国产下载 | 久久艹艹| 在线中文字幕观看 | 久久国产高清视频 | 国产成人av福利 | 久久久精品国产一区二区 | 久久精品3| 亚洲日本一区二区在线 | 综合久久精品 | 日韩美精品视频 | 一区二区三区在线观看 | 97超碰人人澡人人爱 | 国产精品永久免费在线 | 午夜国产福利在线 | 激情网站五月天 | 97在线视频免费播放 | 精品久久久久久一区二区里番 | 亚洲国产精品久久 | 狠狠干天天干 | 岛国av在线不卡 | 六月激情丁香 | 午夜精品久久 | 午夜av电影院 | 色噜噜在线观看 | 免费男女羞羞的视频网站中文字幕 | 亚洲精选99 | 久热国产视频 | 免费进去里的视频 | 日韩黄色中文字幕 | 九九av| 在线观看免费版高清版 | 久久夜夜夜 | 中文字幕 国产精品 | 国产精品久久久久久久久久不蜜月 | 天天射综合网视频 | www.亚洲精品 | 精品国产免费观看 | 国产 欧美 日产久久 | 91精品在线免费观看视频 | 狠狠干我 | 又黄又刺激的网站 | 综合网天天色 | 一级黄色大片在线观看 | 香蕉视频网站在线观看 | 在线观看视频免费播放 | 婷婷免费在线视频 | 久久综合久久综合九色 | 麻豆传媒视频在线播放 | 精品在线视频一区二区三区 | 久久久久久久久久影院 | 69视频网站 | 国产日韩欧美在线影视 | 日韩在线网| 91视频黄色 | 久久午夜免费视频 | 免费网站色 | 深夜精品福利 | 麻豆免费在线视频 | 最近中文字幕免费av | 日日操天天射 | 中文字幕在线视频网站 | 久久久精品日本 | 久久免费中文视频 | 丁香影院在线 | www.狠狠操.com | 国产精品一区在线观看你懂的 | 四虎成人av | 日韩中文字幕在线看 | 日本字幕网 | 最近中文字幕免费大全 | 精品国产一区二区三区久久久蜜臀 | 91在线www | 国产中文字幕av | 久久五月婷婷丁香社区 | 婷婷在线看 | 毛片网在线播放 | 91大神精品视频 | 国产日韩欧美在线一区 | 久久精品人人做人人综合老师 | 婷婷丁香久久五月婷婷 | 国产精品一区二区视频 | 国产精品成人免费精品自在线观看 | 9在线观看免费高清完整版 玖玖爱免费视频 | 在线小视频 | 麻豆精品视频在线 | 成人一级片免费看 | 中文字幕视频在线播放 | 一级精品视频在线观看宜春院 | 黄色特级毛片 | 国产成人精品在线观看 | 97超碰人人干 | 探花国产在线 | 一区二区三区四区五区在线 | 亚洲黄色一级大片 | 深夜免费福利视频 | 久久视频在线 | 精品一区在线看 | 国内成人av | 欧美日韩高清在线观看 | 欧美极品在线播放 | 久久人人射 | 十八岁以下禁止观看的1000个网站 | 成人免费视频播放 | 一区二区三区四区五区在线 | 91精品久久久久久 | 午夜美女视频 | 成人精品久久 | 91禁在线看| 成片免费观看视频 | 日韩激情一二三区 | 中国成人一区 | 在线韩国电影免费观影完整版 | 国产伦精品一区二区三区在线 | 色婷婷狠狠18 | 黄色网中文字幕 | 久久免费大片 | av在线一级| 色94色欧美 | 色综合天天| 日本激情视频中文字幕 | 国产成人综合精品 | 日本中文字幕影院 | 手机在线中文字幕 | 欧美精彩视频在线观看 | 色噜噜狠狠狠狠色综合久不 | 精品久久网 | 手机在线黄色网址 | 91看片在线观看 | 成人资源在线播放 | 91一区二区三区久久久久国产乱 | 91九色精品国产 | 欧美经典久久 | 日韩av午夜在线观看 | 亚洲精品视频在线观看免费视频 | 久久tv | 欧美婷婷综合 | 五月婷婷网站 | 中文字幕亚洲字幕 | 在线观看av黄色 | 亚洲视频在线观看免费 | 免费中文字幕视频 | 久久免费视频网 | 中文字幕在线影院 | 亚洲人成免费 | 欧美激情视频一区二区三区免费 | 狠狠色噜噜狠狠狠狠2021天天 | 色综合久久久久网 | 韩国av电影网 | 精品国产精品国产偷麻豆 | 四虎成人精品 | 久久视了 | 成人毛片一区 | 日韩av片免费在线观看 | 六月久久婷婷 | 99热超碰在线 | 三级在线视频观看 | 日日夜夜骑 | 2019精品手机国产品在线 | 91手机视频 | 婷婷色av | 日本资源中文字幕在线 | 欧美日韩在线观看不卡 | 98超碰人人 | 国产99久久久国产精品成人免费 | 69精品在线观看 | 精品欧美日韩 | 丰满少妇一级 | 福利片免费看 | 免费看一级特黄a大片 | 9热精品| 婷婷六月天丁香 | 亚洲va欧美va国产va黑人 | 午夜久久福利影院 | 久久久免费国产 | 欧美成天堂网地址 | 国产精品一区久久久久 | 国产精品久久久久久久久毛片 | 国产午夜精品视频 | 精品久久久久一区二区国产 | 四虎国产永久在线精品 | 91视频黄色 | 国产精品av在线免费观看 | 日韩精品视频一二三 | 夜夜操夜夜干 | 国产精品免费久久久久影院仙踪林 | 成年人精品 | 久久96国产精品久久99软件 | 亚洲成人麻豆 | 亚洲区视频在线 | 亚洲在线网址 | 天堂av在线中文在线 | 欧美日韩久 | 伊人久久精品久久亚洲一区 | 99婷婷狠狠成为人免费视频 | 在线观看av免费观看 | 91香蕉视频在线 | 成人丁香花| 免费看短 | 日韩毛片在线免费观看 | 欧美一级久久久久 | 日韩一级黄色大片 | 婷久久| 国产精品视频你懂的 | 久久日韩精品 | 国产一区二区三区免费观看视频 |