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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Shell 脚本知识回顾 (三) —— 替换、运算符、字符串、数组

發(fā)布時(shí)間:2023/12/9 编程问答 69 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Shell 脚本知识回顾 (三) —— 替换、运算符、字符串、数组 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、Shell替換:Shell變量替換,命令替換,轉(zhuǎn)義字符

如果表達(dá)式中包含特殊字符,Shell 將會(huì)進(jìn)行替換。例如,在雙引號(hào)中使用變量就是一種替換,轉(zhuǎn)義字符也是一種替換。

舉個(gè)例子: [cpp]?view plaincopy
  • #!/bin/bash??
  • a=10??
  • echo?-e?"Value?of?a?is?$a?\n"??
  • 運(yùn)行結(jié)果:Value of a is 10這里 -e 表示對(duì)轉(zhuǎn)義字符進(jìn)行替換。如果不使用 -e 選項(xiàng),將會(huì)原樣輸出:Value of a is 10\n
    下面的轉(zhuǎn)義字符都可以用在 echo 中: 轉(zhuǎn)義字符 含義
    \\反斜杠
    \a警報(bào),響鈴
    \b退格(刪除鍵)
    \f換頁(FF),將當(dāng)前位置移到下頁開頭
    \n換行
    \r回車
    \t水平制表符(tab鍵)?
    \v垂直制表符
    可以使用 echo 命令的 -E 選項(xiàng)禁止轉(zhuǎn)義,默認(rèn)也是不轉(zhuǎn)義的;使用 -n 選項(xiàng)可以禁止插入換行符。

    命令替換

    命令替換是指Shell可以先執(zhí)行命令,將輸出結(jié)果暫時(shí)保存,在適當(dāng)?shù)牡胤捷敵觥?/span>

    命令替換的語法:
    [cpp]?view plaincopy
  • `command`??
  • 注意是反引號(hào),不是單引號(hào),這個(gè)鍵位于 Esc 鍵下方。

    下面的例子中,將命令執(zhí)行結(jié)果保存在變量中:
    [cpp]?view plaincopy
  • #!/bin/bash??
  • DATE=`date`??
  • echo?"Date?is?$DATE"??
  • USERS=`who?|?wc?-l`??
  • echo?"Logged?in?user?are?$USERS"??
  • UP=`date?;?uptime`??
  • echo?"Uptime?is?$UP"??
  • 運(yùn)行結(jié)果:Date is Thu Jul 2 03:59:57 MST 2009 Logged in user are 1 Uptime is Thu Jul 2 03:59:57 MST 2009 03:59:57 up 20 days, 14:03, 1 user, load avg: 0.13, 0.07, 0.15


    變量替換

    變量替換可以根據(jù)變量的狀態(tài)(是否為空、是否定義等)來改變它的值?可以使用的變量替換形式:
    形式 說明
    ${var}變量本來的值
    ${var:-word}如果變量 var 為空或已被刪除(unset),那么返回?word,但不改變?var 的值。
    ${var:=word}如果變量 var 為空或已被刪除(unset),那么返回 word,并將 var 的值設(shè)置為 word。
    ${var:?message}如果變量 var 為空或已被刪除(unset),那么將消息 message 送到標(biāo)準(zhǔn)錯(cuò)誤輸出,可以用來檢測(cè)變量 var 是否可以被正常賦值。
    若此替換出現(xiàn)在Shell腳本中,那么腳本將停止運(yùn)行。
    ${var:+word}如果變量 var 被定義,那么返回 word,但不改變 var 的值。

    請(qǐng)看下面的例子:#!/bin/bashecho ${var:-"Variable is not set"} echo "1 - Value of var is ${var}"echo ${var:="Variable is not set"} echo "2 - Value of var is ${var}"unset var echo ${var:+"This is default value"} echo "3 - Value of var is $var"var="Prefix" echo ${var:+"This is default value"} echo "4 - Value of var is $var"echo ${var:?"Print this message"} echo "5 - Value of var is ${var}"運(yùn)行結(jié)果: [cpp]?view plaincopy
  • Variable?is?not?set??
  • 1?-?Value?of?var?is??
  • Variable?is?not?set??
  • 2?-?Value?of?var?is?Variable?is?not?set??
  • 3?-?Value?of?var?is??
  • This?is?default?value??
  • 4?-?Value?of?var?is?Prefix??
  • Prefix??
  • 5?-?Value?of?var?is?Prefix??

  • 二、Shell運(yùn)算符:Shell算數(shù)運(yùn)算符、關(guān)系運(yùn)算符、布爾運(yùn)算符、字符串運(yùn)算符等

    Bash 支持很多運(yùn)算符,包括算數(shù)運(yùn)算符、關(guān)系運(yùn)算符、布爾運(yùn)算符、字符串運(yùn)算符和文件測(cè)試運(yùn)算符。

    原生bash不支持簡(jiǎn)單的數(shù)學(xué)運(yùn)算,但是可以通過其他命令來實(shí)現(xiàn),例如 awk 和 expr,expr 最常用。

    expr 是一款表達(dá)式計(jì)算工具,使用它能完成表達(dá)式的求值操作。

    例如,兩個(gè)數(shù)相加:

    [cpp]?view plaincopy
  • #!/bin/bash??
  • val=`expr?2?+?2`??
  • echo?"Total?value?:?$val"??
  • 運(yùn)行腳本輸出:

    Total value : 4 兩點(diǎn)注意:
    • 表達(dá)式和運(yùn)算符之間要有空格,例如 2+2 是不對(duì)的,必須寫成 2 + 2,這與我們熟悉的大多數(shù)編程語言不一樣。
    • 完整的表達(dá)式要被 ` ` 包含,注意這個(gè)字符不是常用的單引號(hào),在 Esc 鍵下邊。

    算術(shù)運(yùn)算符

    先來看一個(gè)使用算術(shù)運(yùn)算符的例子
    [cpp]?view plaincopy
  • <pre?name="code"?class="cpp">#!/bin/sh??
  • a=10??
  • b=20??
  • val=`expr?$a?+?$b`??
  • echo?"a?+?b?:?$val"??
  • val=`expr?$a?-?$b`??
  • echo?"a?-?b?:?$val"??
  • val=`expr?$a?\*?$b`??
  • echo?"a?*?b?:?$val"??
  • val=`expr?$b?/?$a`??
  • echo?"b?/?a?:?$val"??
  • val=`expr?$b?%?$a`??
  • echo?"b?%?a?:?$val"??
  • if?[?$a?==?$b?]??
  • then??
  • ???echo?"a?is?equal?to?b"??
  • fi??
  • if?[?$a?!=?$b?]??
  • then??
  • ???echo?"a?is?not?equal?to?b"??
  • fi??

  • 運(yùn)行結(jié)果: a + b : 30 a - b : -10 a * b : 200 b / a : 2 b % a : 0 a is not equal to b 注意:
    • 乘號(hào)(*)前邊必須加反斜杠(\)才能實(shí)現(xiàn)乘法運(yùn)算;
    • if...then...fi 是條件語句,后續(xù)將會(huì)講解。

    算術(shù)運(yùn)算符列表 運(yùn)算符 說明 舉例
    +加法`expr $a + $b` 結(jié)果為?30。
    -減法`expr $a - $b` 結(jié)果為 10。
    *乘法`expr $a \* $b` 結(jié)果為 ?200。
    /除法`expr $b / $a` 結(jié)果為?2。
    %取余`expr $b % $a` 結(jié)果為?0。
    =賦值a=$b 將把變量 b 的值賦給 a。
    ==相等。用于比較兩個(gè)數(shù)字,相同則返回 true。[ $a == $b ] 返回?false。
    !=不相等。用于比較兩個(gè)數(shù)字,不相同則返回 true。[ $a != $b ] 返回 true。

    注意:條件表達(dá)式要放在方括號(hào)之間,并且要有空格,例如?[$a==$b] 是錯(cuò)誤的,必須寫成?[ $a == $b ]。


    關(guān)系運(yùn)算符

    關(guān)系運(yùn)算符只支持?jǐn)?shù)字,不支持字符串,除非字符串的值是數(shù)字。
    先來看一個(gè)關(guān)系運(yùn)算符的例子: [cpp]?view plaincopy
  • #!/bin/sh??
  • a=10??
  • b=20??
  • if?[?$a?-eq?$b?]??
  • then??
  • ???echo?"$a?-eq?$b?:?a?is?equal?to?b"??
  • else??
  • ???echo?"$a?-eq?$b:?a?is?not?equal?to?b"??
  • fi??
  • if?[?$a?-ne?$b?]??
  • then??
  • ???echo?"$a?-ne?$b:?a?is?not?equal?to?b"??
  • else??
  • ???echo?"$a?-ne?$b?:?a?is?equal?to?b"??
  • fi??
  • if?[?$a?-gt?$b?]??
  • then??
  • ???echo?"$a?-gt?$b:?a?is?greater?than?b"??
  • else??
  • ???echo?"$a?-gt?$b:?a?is?not?greater?than?b"??
  • fi??
  • if?[?$a?-lt?$b?]??
  • then??
  • ???echo?"$a?-lt?$b:?a?is?less?than?b"??
  • else??
  • ???echo?"$a?-lt?$b:?a?is?not?less?than?b"??
  • fi??
  • if?[?$a?-ge?$b?]??
  • then??
  • ???echo?"$a?-ge?$b:?a?is?greater?or??equal?to?b"??
  • else??
  • ???echo?"$a?-ge?$b:?a?is?not?greater?or?equal?to?b"??
  • fi??
  • if?[?$a?-le?$b?]??
  • then??
  • ???echo?"$a?-le?$b:?a?is?less?or??equal?to?b"??
  • else??
  • ???echo?"$a?-le?$b:?a?is?not?less?or?equal?to?b"??
  • fi??
  • 運(yùn)行結(jié)果:

    10 -eq 20: a is not equal to b 10 -ne 20: a is not equal to b 10 -gt 20: a is not greater than b 10 -lt 20: a is less than b 10 -ge 20: a is not greater or equal to b 10 -le 20: a is less or equal to b
    關(guān)系運(yùn)算符列表 運(yùn)算符 說明 舉例
    -eq檢測(cè)兩個(gè)數(shù)是否相等,相等返回 true。[ $a -eq $b ] 返回?true。
    -ne檢測(cè)兩個(gè)數(shù)是否相等,不相等返回 true。[ $a -ne $b ] 返回 true。
    -gt檢測(cè)左邊的數(shù)是否大于右邊的,如果是,則返回 true。[ $a -gt $b ] 返回 false。
    -lt檢測(cè)左邊的數(shù)是否小于右邊的,如果是,則返回 true。[ $a -lt $b ] 返回 true。
    -ge檢測(cè)左邊的數(shù)是否大等于右邊的,如果是,則返回 true。[ $a -ge $b ] 返回 false。
    -le檢測(cè)左邊的數(shù)是否小于等于右邊的,如果是,則返回 true。[ $a -le $b ] 返回 true。


    布爾運(yùn)算符

    先來看一個(gè)布爾運(yùn)算符的例子:
    [cpp]?view plaincopy
  • #!/bin/sh??
  • a=10??
  • b=20??
  • if?[?$a?!=?$b?]??
  • then??
  • ???echo?"$a?!=?$b?:?a?is?not?equal?to?b"??
  • else??
  • ???echo?"$a?!=?$b:?a?is?equal?to?b"??
  • fi??
  • if?[?$a?-lt?100?-a?$b?-gt?15?]??
  • then??
  • ???echo?"$a?-lt?100?-a?$b?-gt?15?:?returns?true"??
  • else??
  • ???echo?"$a?-lt?100?-a?$b?-gt?15?:?returns?false"??
  • fi??
  • if?[?$a?-lt?100?-o?$b?-gt?100?]??
  • then??
  • ???echo?"$a?-lt?100?-o?$b?-gt?100?:?returns?true"??
  • else??
  • ???echo?"$a?-lt?100?-o?$b?-gt?100?:?returns?false"??
  • fi??
  • if?[?$a?-lt?5?-o?$b?-gt?100?]??
  • then??
  • ???echo?"$a?-lt?100?-o?$b?-gt?100?:?returns?true"??
  • else??
  • ???echo?"$a?-lt?100?-o?$b?-gt?100?:?returns?false"??
  • fi??
  • 運(yùn)行結(jié)果: 10 != 20 : a is not equal to b 10 -lt 100 -a 20 -gt 15 : returns true 10 -lt 100 -o 20 -gt 100 : returns true 10 -lt 5 -o 20 -gt 100 : returns false
    布爾運(yùn)算符列表 運(yùn)算符 說明 舉例
    !非運(yùn)算,表達(dá)式為 true 則返回 false,否則返回 true。[ ! false ] 返回 true。
    -o或運(yùn)算,有一個(gè)表達(dá)式為 true 則返回 true。[ $a -lt 20 -o $b -gt 100 ] 返回?true。
    -a與運(yùn)算,兩個(gè)表達(dá)式都為 true 才返回 true。[ $a -lt 20 -a $b -gt 100 ] 返回?false。


    字符串運(yùn)算符

    先來看一個(gè)例子:
    [cpp]?view plaincopy
  • #!/bin/sh??
  • a="abc"??
  • b="efg"??
  • if?[?$a?=?$b?]??
  • then??
  • ???echo?"$a?=?$b?:?a?is?equal?to?b"??
  • else??
  • ???echo?"$a?=?$b:?a?is?not?equal?to?b"??
  • fi??
  • if?[?$a?!=?$b?]??
  • then??
  • ???echo?"$a?!=?$b?:?a?is?not?equal?to?b"??
  • else??
  • ???echo?"$a?!=?$b:?a?is?equal?to?b"??
  • fi??
  • if?[?-z?$a?]??
  • then??
  • ???echo?"-z?$a?:?string?length?is?zero"??
  • else??
  • ???echo?"-z?$a?:?string?length?is?not?zero"??
  • fi??
  • if?[?-n?$a?]??
  • then??
  • ???echo?"-n?$a?:?string?length?is?not?zero"??
  • else??
  • ???echo?"-n?$a?:?string?length?is?zero"??
  • fi??
  • if?[?$a?]??
  • then??
  • ???echo?"$a?:?string?is?not?empty"??
  • else??
  • ???echo?"$a?:?string?is?empty"??
  • fi??
  • 運(yùn)行結(jié)果:

    abc = efg: a is not equal to b abc != efg : a is not equal to b -z abc : string length is not zero -n abc : string length is not zero abc : string is not empty
    字符串運(yùn)算符列表 運(yùn)算符 說明 舉例
    =檢測(cè)兩個(gè)字符串是否相等,相等返回 true。[ $a = $b ] 返回 false。
    !=檢測(cè)兩個(gè)字符串是否相等,不相等返回 true。[ $a != $b ] 返回?true。
    -z檢測(cè)字符串長(zhǎng)度是否為0,為0返回 true。[ -z $a ] 返回 false。
    -n檢測(cè)字符串長(zhǎng)度是否為0,不為0返回 true。[ -z $a ] 返回 true。
    str檢測(cè)字符串是否為空,不為空返回 true。[ $a ] 返回?true。

    文件測(cè)試運(yùn)算符

    文件測(cè)試運(yùn)算符用于檢測(cè) Unix 文件的各種屬性。

    例如,變量 file 表示文件“/var/www/tutorialspoint/unix/test.sh”,它的大小為100字節(jié),具有 rwx 權(quán)限。下面的代碼,將檢測(cè)該文件的各種屬性:

    [cpp]?view plaincopy
  • #!/bin/sh??
  • file="/var/www/tutorialspoint/unix/test.sh"??
  • if?[?-r?$file?]??
  • then??
  • ???echo?"File?has?read?access"??
  • else??
  • ???echo?"File?does?not?have?read?access"??
  • fi??
  • if?[?-w?$file?]??
  • then??
  • ???echo?"File?has?write?permission"??
  • else??
  • ???echo?"File?does?not?have?write?permission"??
  • fi??
  • if?[?-x?$file?]??
  • then??
  • ???echo?"File?has?execute?permission"??
  • else??
  • ???echo?"File?does?not?have?execute?permission"??
  • fi??
  • if?[?-f?$file?]??
  • then??
  • ???echo?"File?is?an?ordinary?file"??
  • else??
  • ???echo?"This?is?sepcial?file"??
  • fi??
  • if?[?-d?$file?]??
  • then??
  • ???echo?"File?is?a?directory"??
  • else??
  • ???echo?"This?is?not?a?directory"??
  • fi??
  • if?[?-s?$file?]??
  • then??
  • ???echo?"File?size?is?zero"??
  • else??
  • ???echo?"File?size?is?not?zero"??
  • fi??
  • if?[?-e?$file?]??
  • then??
  • ???echo?"File?exists"??
  • else??
  • ???echo?"File?does?not?exist"??
  • fi??
  • [cpp]?view plaincopy
  • </pre><pre?code_snippet_id="1663121"?snippet_file_name="blog_20160426_11_7216744"?name="code"?class="cpp"?style="background-color:?rgb(255,?255,?255);">運(yùn)行結(jié)果:??
  • File has read access File has write permission File has execute permission File is an ordinary file This is not a directory File size is zero File exists
    文件測(cè)試運(yùn)算符列表 操作符 說明 舉例
    -b file檢測(cè)文件是否是塊設(shè)備文件,如果是,則返回 true。[ -b $file ] 返回 false。
    -c file檢測(cè)文件是否是字符設(shè)備文件,如果是,則返回 true。[ -b $file ] 返回?false。
    -d file檢測(cè)文件是否是目錄,如果是,則返回 true。[ -d $file ] 返回 false。
    -f file檢測(cè)文件是否是普通文件(既不是目錄,也不是設(shè)備文件),如果是,則返回 true。[ -f $file ] 返回?true。
    -g file檢測(cè)文件是否設(shè)置了 SGID 位,如果是,則返回 true。[ -g $file ] 返回?false。
    -k file檢測(cè)文件是否設(shè)置了粘著位(Sticky Bit),如果是,則返回 true。[ -k $file ] 返回?false。
    -p file檢測(cè)文件是否是具名管道,如果是,則返回 true。[ -p $file ] 返回?false。
    -u file檢測(cè)文件是否設(shè)置了 SUID 位,如果是,則返回 true。[ -u $file ] 返回?false。
    -r file檢測(cè)文件是否可讀,如果是,則返回 true。[ -r $file ] 返回?true。
    -w file檢測(cè)文件是否可寫,如果是,則返回 true。[ -w $file ] 返回?true。
    -x file檢測(cè)文件是否可執(zhí)行,如果是,則返回 true。[ -x $file ] 返回?true。
    -s file檢測(cè)文件是否為空(文件大小是否大于0),不為空返回 true。[ -s $file ] 返回?true。
    -e file檢測(cè)文件(包括目錄)是否存在,如果是,則返回 true。[ -e $file ] 返回?true。


    三、Shell字符串

    字符串是shell編程中最常用最有用的數(shù)據(jù)類型(除了數(shù)字和字符串,也沒啥其它類型好用了),字符串可以用單引號(hào),也可以用雙引號(hào),也可以不用引號(hào)。單雙引號(hào)的區(qū)別跟PHP類似。

    單引號(hào)

    <ol class="snippet-num" style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; padding-left: 20px; padding-top: 3px !important; padding-right: 8px !important; padding-bottom: 3px !important;"><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"><span class="sh_variable" style="color: rgb(0, 0, 255);">str</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">=</span><span class="sh_string" style="color: rgb(24, 97, 167);">'this is a string'</span></li></ol> 單引號(hào)字符串的限制:
    • 單引號(hào)里的任何字符都會(huì)原樣輸出,單引號(hào)字符串中的變量是無效的;
    • 單引號(hào)字串中不能出現(xiàn)單引號(hào)(對(duì)單引號(hào)使用轉(zhuǎn)義符后也不行)。

    雙引號(hào)

    <ol class="snippet-num" style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; padding-left: 20px; padding-top: 3px !important; padding-right: 8px !important; padding-bottom: 3px !important;"><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"><span class="sh_variable" style="color: rgb(0, 0, 255);">your_name</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">=</span><span class="sh_string" style="color: rgb(24, 97, 167);">'qinjx'</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"><span class="sh_variable" style="color: rgb(0, 0, 255);">str</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">=</span><span class="sh_string" style="color: rgb(24, 97, 167);">"Hello, I know your are </span><span class="sh_specialchar" style="color: rgb(24, 97, 167);">\"</span><span class="sh_string" style="color: rgb(24, 97, 167);">$your_name</span><span class="sh_specialchar" style="color: rgb(24, 97, 167);">\"</span><span class="sh_string" style="color: rgb(24, 97, 167);">! </span><span class="sh_specialchar" style="color: rgb(24, 97, 167);">\n</span><span class="sh_string" style="color: rgb(24, 97, 167);">"</span></li></ol> 雙引號(hào)的優(yōu)點(diǎn):
    • 雙引號(hào)里可以有變量
    • 雙引號(hào)里可以出現(xiàn)轉(zhuǎn)義字符

    拼接字符串

    <ol class="snippet-num" style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; padding-left: 20px; padding-top: 3px !important; padding-right: 8px !important; padding-bottom: 3px !important;"><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"><span class="sh_variable" style="color: rgb(0, 0, 255);">your_name</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">=</span><span class="sh_string" style="color: rgb(24, 97, 167);">"qinjx"</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"><span class="sh_variable" style="color: rgb(0, 0, 255);">greeting</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">=</span><span class="sh_string" style="color: rgb(24, 97, 167);">"hello, "</span><span class="sh_variable" style="color: rgb(0, 0, 255);">$your_name</span><span class="sh_string" style="color: rgb(24, 97, 167);">" !"</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"><span class="sh_variable" style="color: rgb(0, 0, 255);">greeting_1</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">=</span><span class="sh_string" style="color: rgb(24, 97, 167);">"hello, ${your_name} !"</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;">echo <span class="sh_variable" style="color: rgb(0, 0, 255);">$greeting</span> <span class="sh_variable" style="color: rgb(0, 0, 255);">$greeting_1</span></li></ol>

    獲取字符串長(zhǎng)度

    復(fù)制純文本新窗口 <ol class="snippet-num" style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; padding-left: 20px; padding-top: 3px !important; padding-right: 8px !important; padding-bottom: 3px !important;"><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"><span class="sh_variable" style="color: rgb(0, 0, 255);">string</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">=</span><span class="sh_string" style="color: rgb(24, 97, 167);">"abcd"</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;">echo <span class="sh_variable" style="color: rgb(0, 0, 255);">${#string}</span> <span class="sh_comment" style="color: rgb(56, 173, 36);">#輸出 4</span></li></ol>

    提取子字符串

    <ol class="snippet-num" style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; padding-left: 20px; padding-top: 3px !important; padding-right: 8px !important; padding-bottom: 3px !important;"><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"><span class="sh_variable" style="color: rgb(0, 0, 255);">string</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">=</span><span class="sh_string" style="color: rgb(24, 97, 167);">"alibaba is a great company"</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;">echo <span class="sh_variable" style="color: rgb(0, 0, 255);">${string:1:4}</span> <span class="sh_comment" style="color: rgb(56, 173, 36);">#輸出liba</span></li></ol>

    查找子字符串

    <ol class="snippet-num" style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; padding-left: 20px; padding-top: 3px !important; padding-right: 8px !important; padding-bottom: 3px !important;"><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"><span class="sh_variable" style="color: rgb(0, 0, 255);">string</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">=</span><span class="sh_string" style="color: rgb(24, 97, 167);">"alibaba is a great company"</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;">echo `expr index <span class="sh_string" style="color: rgb(24, 97, 167);">"$string"</span> is`</li></ol>


    四、Shell數(shù)組:shell數(shù)組的定義、數(shù)組長(zhǎng)度

    Shell在編程方面比Windows批處理強(qiáng)大很多,無論是在循環(huán)、運(yùn)算。
    bash支持一維數(shù)組(不支持多維數(shù)組),并且沒有限定數(shù)組的大小。類似與C語言,數(shù)組元素的下標(biāo)由0開始編號(hào)。獲取數(shù)組中的元素要利用下標(biāo),下標(biāo)可以是整數(shù)或算術(shù)表達(dá)式,其值應(yīng)大于或等于0。

    定義數(shù)組

    在Shell中,用括號(hào)來表示數(shù)組,數(shù)組元素用“空格”符號(hào)分割開。定義數(shù)組的一般形式為:
    ? ??array_name=(value1 ... valuen)
    例如:

    <ol class="snippet-num" style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; padding-left: 20px; padding-top: 3px !important; padding-right: 8px !important; padding-bottom: 3px !important;"><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"><span class="sh_variable" style="color: rgb(0, 0, 255);">array_name</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">=(</span>value0 value1 value2 value3<span class="sh_symbol" style="color: rgb(48, 48, 238);">)</span></li></ol> 或者 <ol class="snippet-num" style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; padding-left: 20px; padding-top: 3px !important; padding-right: 8px !important; padding-bottom: 3px !important;"><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"><span class="sh_variable" style="color: rgb(0, 0, 255);">array_name</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">=(</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;">value0</li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;">value1</li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;">value2</li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;">value3</li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"><span class="sh_symbol" style="color: rgb(48, 48, 238);">)</span></li></ol>
    還可以單獨(dú)定義數(shù)組的各個(gè)分量: <ol class="snippet-num" style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; padding-left: 20px; padding-top: 3px !important; padding-right: 8px !important; padding-bottom: 3px !important;"><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;">array_name<span class="sh_symbol" style="color: rgb(48, 48, 238);">[</span><span class="sh_number" style="color: rgb(50, 186, 6);">0</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">]=</span>value0</li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;">array_name<span class="sh_symbol" style="color: rgb(48, 48, 238);">[</span><span class="sh_number" style="color: rgb(50, 186, 6);">1</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">]=</span>value1</li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;">array_name<span class="sh_symbol" style="color: rgb(48, 48, 238);">[</span><span class="sh_number" style="color: rgb(50, 186, 6);">2</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">]=</span>value2</li></ol> 可以不使用連續(xù)的下標(biāo),而且下標(biāo)的范圍沒有限制。

    讀取數(shù)組

    讀取數(shù)組元素值的一般格式是:
    ? ??${array_name[index]}
    例如:
    <ol class="snippet-num" style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; padding-left: 20px; padding-top: 3px !important; padding-right: 8px !important; padding-bottom: 3px !important;"><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"><span class="sh_variable" style="color: rgb(0, 0, 255);">valuen</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">=</span><span class="sh_variable" style="color: rgb(0, 0, 255);">${array_name[2]}</span></li></ol> 舉個(gè)例子: <ol class="snippet-num" style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; padding-left: 20px; padding-top: 3px !important; padding-right: 8px !important; padding-bottom: 3px !important;"><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"><span class="sh_comment" style="color: rgb(56, 173, 36);">#!/bin/sh</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;">NAME<span class="sh_symbol" style="color: rgb(48, 48, 238);">[</span><span class="sh_number" style="color: rgb(50, 186, 6);">0</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">]=</span><span class="sh_string" style="color: rgb(24, 97, 167);">"Zara"</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;">NAME<span class="sh_symbol" style="color: rgb(48, 48, 238);">[</span><span class="sh_number" style="color: rgb(50, 186, 6);">1</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">]=</span><span class="sh_string" style="color: rgb(24, 97, 167);">"Qadir"</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;">NAME<span class="sh_symbol" style="color: rgb(48, 48, 238);">[</span><span class="sh_number" style="color: rgb(50, 186, 6);">2</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">]=</span><span class="sh_string" style="color: rgb(24, 97, 167);">"Mahnaz"</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;">NAME<span class="sh_symbol" style="color: rgb(48, 48, 238);">[</span><span class="sh_number" style="color: rgb(50, 186, 6);">3</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">]=</span><span class="sh_string" style="color: rgb(24, 97, 167);">"Ayan"</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;">NAME<span class="sh_symbol" style="color: rgb(48, 48, 238);">[</span><span class="sh_number" style="color: rgb(50, 186, 6);">4</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">]=</span><span class="sh_string" style="color: rgb(24, 97, 167);">"Daisy"</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;">echo <span class="sh_string" style="color: rgb(24, 97, 167);">"First Index: ${NAME[0]}"</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;">echo <span class="sh_string" style="color: rgb(24, 97, 167);">"Second Index: ${NAME[1]}"</span></li></ol> 運(yùn)行腳本,輸出: $./test.sh First Index: Zara Second Index: Qadir 使用@ 或 * 可以獲取數(shù)組中的所有元素,例如: <ol class="snippet-num" style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; padding-left: 20px; padding-top: 3px !important; padding-right: 8px !important; padding-bottom: 3px !important;"><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"><span class="sh_variable" style="color: rgb(0, 0, 255);">${array_name[*]}</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"><span class="sh_variable" style="color: rgb(0, 0, 255);">${array_name[@]}</span></li></ol> 舉個(gè)例子: <ol class="snippet-num" style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; padding-left: 20px; padding-top: 3px !important; padding-right: 8px !important; padding-bottom: 3px !important;"><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"><span class="sh_comment" style="color: rgb(56, 173, 36);">#!/bin/sh</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;">NAME<span class="sh_symbol" style="color: rgb(48, 48, 238);">[</span><span class="sh_number" style="color: rgb(50, 186, 6);">0</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">]=</span><span class="sh_string" style="color: rgb(24, 97, 167);">"Zara"</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;">NAME<span class="sh_symbol" style="color: rgb(48, 48, 238);">[</span><span class="sh_number" style="color: rgb(50, 186, 6);">1</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">]=</span><span class="sh_string" style="color: rgb(24, 97, 167);">"Qadir"</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;">NAME<span class="sh_symbol" style="color: rgb(48, 48, 238);">[</span><span class="sh_number" style="color: rgb(50, 186, 6);">2</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">]=</span><span class="sh_string" style="color: rgb(24, 97, 167);">"Mahnaz"</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;">NAME<span class="sh_symbol" style="color: rgb(48, 48, 238);">[</span><span class="sh_number" style="color: rgb(50, 186, 6);">3</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">]=</span><span class="sh_string" style="color: rgb(24, 97, 167);">"Ayan"</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;">NAME<span class="sh_symbol" style="color: rgb(48, 48, 238);">[</span><span class="sh_number" style="color: rgb(50, 186, 6);">4</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">]=</span><span class="sh_string" style="color: rgb(24, 97, 167);">"Daisy"</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;">echo <span class="sh_string" style="color: rgb(24, 97, 167);">"First Method: ${NAME[*]}"</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;">echo <span class="sh_string" style="color: rgb(24, 97, 167);">"Second Method: ${NAME[@]}"</span></li></ol> 運(yùn)行腳本,輸出: $./test.sh First Method: Zara Qadir Mahnaz Ayan Daisy Second Method: Zara Qadir Mahnaz Ayan Daisy

    獲取數(shù)組的長(zhǎng)度

    獲取數(shù)組長(zhǎng)度的方法與獲取字符串長(zhǎng)度的方法相同,例如: <ol class="snippet-num" style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; padding-left: 20px; padding-top: 3px !important; padding-right: 8px !important; padding-bottom: 3px !important;"><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"><span class="sh_comment" style="color: rgb(56, 173, 36);"># 取得數(shù)組元素的個(gè)數(shù)</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"><span class="sh_variable" style="color: rgb(0, 0, 255);">length</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">=</span><span class="sh_variable" style="color: rgb(0, 0, 255);">${#array_name[@]}</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"><span class="sh_comment" style="color: rgb(56, 173, 36);"># 或者</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"><span class="sh_variable" style="color: rgb(0, 0, 255);">length</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">=</span><span class="sh_variable" style="color: rgb(0, 0, 255);">${#array_name[*]}</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"><span class="sh_comment" style="color: rgb(56, 173, 36);"># 取得數(shù)組單個(gè)元素的長(zhǎng)度</span></li><li style="padding-left: 8px; list-style: decimal-leading-zero outside none;"><span class="sh_variable" style="color: rgb(0, 0, 255);">lengthn</span><span class="sh_symbol" style="color: rgb(48, 48, 238);">=</span><span class="sh_variable" style="color: rgb(0, 0, 255);">${#array_name[n]}</span></li></ol>

    總結(jié)

    以上是生活随笔為你收集整理的Shell 脚本知识回顾 (三) —— 替换、运算符、字符串、数组的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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

    亚洲欧美视频网站 | 黄色小说在线免费观看 | 精品免费久久 | 欧美成人性战久久 | 久久成人在线视频 | 91精品专区 | 久久人人射 | 久av电影| 亚洲综合激情 | 国产九色在线播放九色 | 国精产品一二三线999 | 91在线视频免费 | 成人免费亚洲 | 99精品乱码国产在线观看 | 少妇按摩av | 国产综合在线视频 | 久久成年人 | bbbbb女女女女女bbbbb国产 | 精品欧美一区二区三区久久久 | 日本在线观看一区二区三区 | 九九热只有精品 | 久久久午夜精品福利内容 | 久久手机在线视频 | 91亚洲精品久久久中文字幕 | 亚州国产精品久久久 | 免费a v网站 | 久久精品国产免费 | 日韩v在线 | 成人网444ppp| 免费91在线观看 | 中文字幕亚洲高清 | 国产中文字幕网 | 欧美精品久久久久a | 欧美男同视频网站 | 欧美不卡视频在线 | 999一区二区三区 | 久久中文欧美 | 久久精品麻豆 | 中文字幕一区二区三区在线视频 | 久久国产一区 | 天天色天天操综合网 | 天天干,夜夜操 | 亚洲九九影院 | 成片免费观看视频 | 久久国色夜色精品国产 | 日韩免费看 | 久久免费成人精品视频 | 中文字幕在线观看播放 | 97超碰福利久久精品 | 国产精品久久久久久久久久久久午夜 | 日韩视 | 美女国产 | 国产精品亚 | 国产视频在线观看一区 | 黄色大全视频 | 色视频网站在线观看一=区 a视频免费在线观看 | 国产a级精品 | 操碰av| av动态图片 | 欧美肥妇free| 精品自拍sae8—视频 | 日本3级在线观看 | 欧美综合在线视频 | 91免费观看国产 | 911免费视频 | 黄色91免费观看 | 91桃色在线播放 | 黄色av在 | 中文字幕在线日 | 日韩 国产 | 黄在线免费看 | 亚洲在线国产 | 日本在线视频网址 | 国产亚洲精品综合一区91 | 亚洲欧美激情插 | 久久综合之合合综合久久 | 午夜精品久久久久久久久久久 | 国产精品一区二区久久国产 | 麻豆视频国产在线观看 | 色.com| 亚洲欧美综合 | 国语精品免费视频 | 国产精品久久久久久超碰 | 中文字幕视频一区二区 | 午夜精品一二区 | 在线播放你懂 | 国产高清在线视频 | 久久精品国产免费看久久精品 | 国产精品免费不卡 | 国产成人免费在线观看 | 久久99热精品 | 亚洲人成网站精品片在线观看 | 国产精品毛片一区二区三区 | 亚洲午夜小视频 | 国产黄在线免费观看 | 国产精品福利在线 | 国产99久久久国产精品免费看 | 亚洲综合网站在线观看 | 国产精品激情在线观看 | 日韩午夜三级 | 久色 网 | 国内丰满少妇猛烈精品播放 | 性色va | 开心色停停| 亚洲一级免费观看 | 国产精品成人一区二区 | 一级片免费观看视频 | 日韩av一卡二卡三卡 | 国产在线免费av | 免费看片网址 | 激情久久伊人 | 97在线视频网站 | 欧美福利网址 | 久久国产精品免费一区 | 97在线观看视频 | 亚洲国产精品电影在线观看 | 国产馆在线播放 | 不卡的一区二区三区 | 免费高清在线观看电视网站 | 免费精品视频在线 | 亚洲视频在线免费看 | 国产打女人屁股调教97 | 国产高清免费av | 91热爆视频 | 最新极品jizzhd欧美 | 在线精品亚洲 | 香蕉网站在线观看 | 日韩精品视频久久 | 国产原创在线视频 | 国产福利精品在线观看 | 在线看国产一区 | 国产综合视频在线观看 | 日日操日日插 | 国产91在线 | 美洲 | 国产精品免费观看视频 | 国产精彩在线视频 | 国产精品欧美日韩 | 日韩r级电影在线观看 | 奇米影音四色 | 成人午夜精品福利免费 | 三上悠亚在线免费 | 激情xxxx| 在线视频1卡二卡三卡 | 丁香综合av | 特片网久久 | 亚洲综合成人av | 一区二区三区免费 | 免费视频在线观看网站 | 福利久久久 | 国语自产偷拍精品视频偷 | 欧美日韩视频在线播放 | a√国产免费a | 国产婷婷色 | 亚洲精品高清视频在线观看 | 久久精品一区二区三区中文字幕 | 热久久国产精品 | 欧美电影黄色 | 久久久久久久久毛片精品 | 成年人在线电影 | 欧美一区二区伦理片 | 久久99最新地址 | av片中文字幕| 激情在线五月天 | 91视频麻豆视频 | 国产精品专区在线观看 | 精品一区二区日韩 | 免费一级片在线观看 | 日韩有码在线播放 | 国产精品久久久久aaaa | 欧美久久久久久久久中文字幕 | 在线免费观看av网站 | 综合伊人久久 | 国产精品美女久久久网av | 亚洲久在线 | 亚洲永久字幕 | 亚洲在线视频网站 | 激情av五月婷婷 | 在线播放亚洲激情 | 91视频国产高清 | 美女露久久 | 日韩免费网址 | 少妇搡bbb | 午夜电影中文字幕 | 在线观看国产高清视频 | 久久精品综合视频 | 天天操天天玩 | 久草在线视频网 | 中文字幕高清免费日韩视频在线 | 四虎影院在线观看av | 人人草在线观看 | 91天天操| 视频二区在线视频 | 亚洲精品色视频 | 综合网伊人 | 色吊丝在线永久观看最新版本 | 亚洲激情婷婷 | 香蕉视频免费看 | 日韩欧美国产激情在线播放 | 精品国产自在精品国产精野外直播 | 久久99视频免费观看 | 成人理论在线观看 | 中文字幕在线播放av | 国产精品久久久久久久免费观看 | 99九九视频 | 国产 日韩 欧美 自拍 | 最新av网站在线观看 | 亚洲aaa毛片 | 欧美精品中文在线免费观看 | 色综合久久久久综合 | 成人性生爱a∨ | 婷婷视频 | 欧美日本一区 | 蜜臀久久99精品久久久无需会员 | 亚洲婷婷免费 | 最新av网址在线观看 | 99精品国产成人一区二区 | 香蕉在线播放 | 91精品欧美 | 伊人天堂久久 | 国产永久网站 | 激情网五月天 | 中文字幕日韩一区二区三区不卡 | 国产精品久久久区三区天天噜 | 国产五月色婷婷六月丁香视频 | 91精品国产综合久久婷婷香蕉 | 伊人婷婷 | 国内精品久久久 | 在线 国产一区 | 成人资源在线观看 | 久久久久色 | 在线观看av免费 | 日本在线观看中文字幕 | 美女在线国产 | 国产日产精品一区二区三区四区的观看方式 | 亚洲精品男人天堂 | 夜夜视频欧洲 | 91网站免费观看 | 91在线看视频 | 久久精品一二三区白丝高潮 | 在线看成人av | 国产精品18久久久久久久 | 国产精品成人免费一区久久羞羞 | 91在线免费看片 | 四虎影视成人 | 人人澡人摸人人添学生av | 欧美aa在线 | 欧美在线不卡一区 | 国产丝袜高跟 | 国产欧美三级 | www.久久精品视频 | 伊人精品在线 | 在线天堂中文www视软件 | 精品一区精品二区 | 日本xxxx.com| 国产精品12 | 麻豆精品传媒视频 | 中文在线字幕观看电影 | 成人av影视在线 | 精品国偷自产国产一区 | 伊人五月天综合 | 日韩美女免费线视频 | 狠狠狠综合 | 美女免费电影 | 97视频免费在线看 | 九色琪琪久久综合网天天 | 91久久黄色 | 超碰在线人人 | 久久免费大片 | h视频在线看| 91成品视频 | 免费观看的av网站 | 岛国片在线| 一区二区三区免费看 | 99久久成人 | 中文字幕视频一区 | 色资源在线 | 精品国产91亚洲一区二区三区www | 97偷拍视频| 国产精品99精品久久免费 | 亚洲精品a区 | 午夜国产一区 | 在线观看色网 | 精品国产亚洲一区二区麻豆 | 国产精品欧美日韩在线观看 | 久久久久久久久久国产精品 | 91九色蝌蚪国产 | 91精品专区 | 国产手机视频 | 欧美日韩免费网站 | .国产精品成人自产拍在线观看6 | 国产又粗又长又硬免费视频 | 久久综合加勒比 | 99精品一区 | 在线观看精品一区 | 国产男女无遮挡猛进猛出在线观看 | 日韩在线视频不卡 | 天天干天天操天天 | 五月婷婷丁香在线观看 | 波多野结衣亚洲一区二区 | 国产一区二区精品久久91 | 91精彩在线视频 | 69精品久久| 麻花豆传媒mv在线观看 | av成人在线播放 | 国产又粗又猛又黄又爽的视频 | 色婷婷av在线 | av888av.com| 天天摸天天干天天操天天射 | 人人爽人人 | 91九色综合| 久色伊人 | 国产精品原创av片国产免费 | 亚洲精品视频免费在线观看 | 手机av在线免费观看 | 麻豆免费精品视频 | 天天天色| 日韩精品久久久 | 香蕉看片| 精品久久久久国产 | 午夜丁香网| 五月激情在线 | 久久男人影院 | 亚洲精品资源在线 | 亚洲男男gⅴgay双龙 | 色五婷婷 | 精品国产亚洲一区二区麻豆 | 韩国一区二区三区在线观看 | www.精选视频.com | 狠狠色丁香婷婷综合欧美 | 国产99久久精品一区二区300 | 国产九九热 | 亚洲高清在线观看视频 | 欧美激情另类文学 | www.香蕉| 久久不卡免费视频 | 国产精品久久久久久a | 天天综合网 天天综合色 | 狠狠的干狠狠的操 | 日韩欧美视频免费在线观看 | 国产日本三级 | 97国产视频| 欧美日韩精品久久久 | 亚洲高清激情 | 国产小视频在线免费观看视频 | 亚洲成人精品av | 国产精成人品免费观看 | av成人黄色 | 人人玩人人弄 | 狠狠的操你 | 91精品秘密在线观看 | 国产va在线观看免费 | 麻豆观看| 国产日韩欧美精品在线观看 | 免费av在线网站 | 偷拍区另类综合在线 | 国产99免费视频 | 天天操狠狠操 | 亚洲精品国产高清 | 亚洲男女精品 | 超碰97国产精品人人cao | 天天操比| 免费欧美高清视频 | 波多野结衣久久精品 | 久久精品牌麻豆国产大山 | 最近中文字幕大全中文字幕免费 | 国产免费看 | 国产美女免费看 | 美女黄频网站 | 天天插狠狠插 | 国产精品1区2区3区 久久免费视频7 | 亚洲国产三级在线 | 亚洲区二区 | 99国内精品久久久久久久 | 日日夜夜免费精品视频 | 久久久久久久久久久成人 | 久久亚洲美女 | 久久字幕精品一区 | 伊人久久精品久久亚洲一区 | 国产视频在 | 国产黄色一级片在线 | 国产中文字幕视频在线观看 | 一区二区三区在线观看免费 | 色在线观看网站 | 久久国色夜色精品国产 | 欧美在线观看视频一区二区三区 | 韩国一区在线 | 久久综合色一综合色88 | 99久久99久久免费精品蜜臀 | 日韩久久久久久久久 | 欧美激情视频久久 | 久久精品这里都是精品 | 亚洲经典视频在线观看 | 国产人成在线视频 | 在线观看完整版免费 | 久久国产精品视频观看 | 日韩网站在线看片你懂的 | 婷婷精品在线视频 | 久久亚洲电影 | 日韩欧美高清在线观看 | 精品国产一区二区三区男人吃奶 | 亚洲理论电影网 | 久久久精品免费看 | 99re8这里有精品热视频免费 | 亚洲天堂精品视频在线观看 | 日韩在线观看小视频 | 欧美国产日韩一区 | avhd高清在线谜片 | 久久国产品 | 99久热 | 欧美午夜性生活 | 国产免费中文字幕 | 国内少妇自拍视频一区 | 中文字幕在线日 | 日本精品在线看 | 人人讲| 最近中文字幕免费大全 | 三级黄色在线观看 | 黄色福利网站 | www久久久 | 国产精品亚洲人在线观看 | 四虎伊人 | 久碰视频在线观看 | 国产免费一区二区三区最新6 | 美女黄久久 | 狠狠操狠狠干天天操 | 国产精品久久久久久高潮 | 成 人 a v天堂 | 亚洲在线精品 | 99综合影院在线 | 精品日韩中文字幕 | 免费看麻豆| 色综合久久综合 | 人人澡超碰碰97碰碰碰软件 | 天天操一操| 欧美一区成人 | 人人dvd| 国产原创中文在线 | 国产涩涩在线观看 | 欧美影院久久 | 天堂av在线 | 欧美成人性战久久 | 国产精品乱码高清在线看 | 亚洲涩涩网站 | 美女网站视频一区 | 国产精品视频永久免费播放 | 欧美久草在线 | 久碰视频在线观看 | 91在线小视频 | 手机在线永久免费观看av片 | 探花视频在线观看 | 91经典在线| 欧美午夜性 | 96国产在线| 日韩a在线看 | 91视频 - 88av | 国产精品视频999 | 日韩精品久久中文字幕 | 国产区免费 | 国产精品久久久久久69 | 国产日本亚洲高清 | 韩国av免费 | 国产精品毛片一区二区在线 | 久久手机看片 | 天天躁日日躁狠狠躁av麻豆 | 亚洲天堂网站视频 | 亚洲成人黄色网址 | 久久er99热精品一区二区 | 国产在线小视频 | av中文字幕在线播放 | 国产日韩精品久久 | 久久国产精品99久久久久久进口 | 国产小视频精品 | 国产精品99久久免费观看 | 免费观看福利视频 | 日日干美女| 欧美一二三视频 | 日本久久高清视频 | 色干综合 | 人人插人人看 | 亚洲一级片在线看 | 成人久久18免费网站麻豆 | 国产亚洲精品美女 | 狠狠狠操 | 伊人宗合网 | 久久成年视频 | 91久久久久久久一区二区 | 婷婷视频 | 午夜视频免费在线观看 | 五月天久久婷婷 | 日韩精品久久一区二区三区 | 精品国产伦一区二区三区免费 | 丁香 久久 综合 | 天堂视频中文在线 | 激情xxxx| 日韩av快播电影网 | 亚洲精品久久久蜜臀下载官网 | 国产粉嫩在线 | 久久艹在线观看 | 久久视讯 | 精品国产一区二区三区蜜臀 | 久久怡红院 | 日韩av在线不卡 | 伊人婷婷综合 | 欧美另类高清 | 天天狠狠 | 久久人人看 | 97超碰总站 | 亚洲欧美日韩一二三区 | 免费人成网ww44kk44 | 91成人小视频 | 久久久精品亚洲 | 欧美一区三区四区 | 蜜桃视频日本 | 国产精品人人做人人爽人人添 | 午夜精品电影 | 免费在线黄色av | 99久久综合国产精品二区 | 国产97色 | 成人羞羞视频在线观看免费 | 免费观看福利视频 | 在线观看一区 | 久久久久久中文字幕 | 一区二区三区四区久久 | 精品视频在线看 | 美女视频免费精品 | 国产精品一区二区久久国产 | 国产在线观看国语版免费 | 91一区二区三区久久久久国产乱 | 日韩在线观看视频免费 | 国产精品久久久久久久久久久久久久 | 中文字幕888 | 国产一区二区三区免费在线观看 | 国产爽妇网 | 中文字幕在线视频一区二区 | 一区 在线 影院 | 日韩电影在线观看中文字幕 | 夜夜夜影院 | 免费亚洲一区二区 | 成人小视频在线 | 久久久久久高潮国产精品视 | 91视视频在线直接观看在线看网页在线看 | 久久99国产精品二区护士 | 黄色一级免费 | 国产精品高清在线观看 | 久久精品4 | 麻豆国产精品视频 | 午夜精品一区二区三区在线视频 | 日韩理论片在线观看 | 日韩超碰在线 | 黄色小说18 | 一区二区精品在线 | 国产日韩精品一区二区三区在线 | 亚洲国产一二三 | 久久综合九色欧美综合狠狠 | 欧美日韩在线免费观看视频 | 亚洲高清在线观看视频 | 国产在线不卡一区 | 人人爽人人片 | 久久国产精品免费 | va视频在线观看 | 国产精在线 | 蜜臀一区二区三区精品免费视频 | 91亚洲国产成人久久精品网站 | 韩日av一区二区 | 成人a在线| 亚洲人成网站精品片在线观看 | 亚洲欧美日韩国产一区二区三区 | 日本 在线 视频 中文 有码 | 日韩大片在线免费观看 | 亚洲视频每日更新 | 在线草| 亚洲一二视频 | 国产99久久99热这里精品5 | 国产视频在线观看免费 | 综合成人在线 | 成 人 黄 色 视频 免费观看 | 日韩在线视频一区 | www.色就是色| 色综合天天色综合 | 亚洲不卡在线 | 91福利社在线观看 | 四虎国产精品免费观看视频优播 | 香蕉在线影院 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 九九综合九九综合 | 国产精品高清在线观看 | 美女视频黄免费 | 99精品视频99 | 超碰在线最新 | 91手机视频 | 狠狠操综合网 | 国内精品视频久久 | 亚洲狠狠婷婷综合久久久 | 久久成人18免费网站 | 久久尤物电影视频在线观看 | 天天综合网~永久入口 | 婷婷开心久久网 | 欧美久久久久久久久久久久久 | 日韩一三区 | 日韩色综合网 | 亚洲乱码一区 | 99视频精品视频高清免费 | 亚洲闷骚少妇在线观看网站 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 国产精品久久久久av免费 | 91中文字幕在线视频 | 欧美俄罗斯性视频 | 国产欧美日韩精品一区二区免费 | 综合婷婷久久 | 成年人黄色免费看 | 午夜精品一区二区三区在线观看 | 久艹视频在线免费观看 | 国产成人三级一区二区在线观看一 | 超碰久热| 免费看成人 | 中文字幕专区高清在线观看 | 在线观看av黄色 | 色婷婷www | 亚洲精品日韩av | 看全黄大色黄大片 | 免费看精品久久片 | 西西www4444大胆在线 | 亚洲精品欧美成人 | 91免费高清 | 国产九九九九九 | 欧美日本一区 | 在线国产欧美 | 久草视频精品 | 日韩高清免费在线观看 | 成 人 黄 色 免费播放 | 精品久久久久久久 | 国产在线v | 久久免费视频4 | 在线观看日韩精品视频 | 黄色网址中文字幕 | av在线超碰 | 在线精品视频在线观看高清 | 成人日批视频 | 麻豆视频免费播放 | 亚洲视频第一页 | 狠狠操.com | 不卡av在线播放 | 国产 欧美 日本 | 欧美一级艳片视频免费观看 | 国产精品 999| 欧美激情奇米色 | 婷婷资源站| 深爱激情综合 | 欧美日韩精品在线播放 | 中文字幕在线一区观看 | 久久综合干 | 五月婷婷中文 | 日本成人免费在线观看 | 有没有在线观看av | 免费看的黄色小视频 | 久草网视频 | 国产精品久久久久四虎 | 国产精品theporn | 日韩特黄一级欧美毛片特黄 | 久久久精品国产一区二区 | 国产日韩欧美在线影视 | 91在线影院 | 欧美精品久久久久久久亚洲调教 | 久草在线视频中文 | 99欧美视频 | 国产色a在线观看 | 久久天堂精品视频 | 在线国产片 | 亚洲久草网| 欧美性护士 | 9999激情| 国产精品11 | 久久婷婷一区 | 免费a视频在线 | 天天综合网~永久入口 | 成年人电影免费在线观看 | 午夜视频色 | 成 人 黄 色 免费播放 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 香蕉影院在线播放 | 色综合久久88 | 九九影视理伦片 | 国产精品一区二区久久国产 | 国产精品久久久久久五月尺 | 久久综合免费视频 | 午夜视频一区二区三区 | 超碰在线天天 | 干干夜夜 | 婷婷国产在线观看 | 色多视频在线观看 | 天天操天天干天天玩 | 国产美女精品在线 | 视频精品一区二区三区 | av在线永久免费观看 | 国产精品视频免费观看 | 国产一区欧美一区 | 色99视频| 成人a免费 | 婷婷伊人综合 | 久久久精品免费看 | 国产成人在线观看免费 | 天天综合天天综合 | 99热最新地址 | 色天天综合久久久久综合片 | 青青河边草免费直播 | 亚洲黄色在线观看 | av中文字幕在线看 | 亚洲一区视频免费观看 | 激情五月播播久久久精品 | 久久久综合色 | 成人h动漫在线看 | 国产精品不卡在线 | 四虎在线影视 | 日韩电影中文,亚洲精品乱码 | 毛片基地黄久久久久久天堂 | 一二三区av| 午夜av在线免费 | 亚洲成人免费观看 | 亚洲欧美日韩国产精品一区午夜 | 性色av一区二区三区在线观看 | 久久国产精品99久久久久久进口 | 亚洲一级特黄 | 久久久久久不卡 | 韩国精品视频在线观看 | www.狠狠干| 玖玖玖国产精品 | 亚洲观看黄色网 | 久久99国产精品二区护士 | 日本黄色免费电影网站 | 日日夜夜干| 久久久久久久免费观看 | 成人性生交大片免费观看网站 | 超碰在线91| 天天av资源 | 手机av在线网站 | 色亚洲网| 亚洲精品视频免费在线 | 狠狠色丁香婷婷综合橹88 | 国产精品自产拍在线观看 | 久草在线免费资源 | 日日噜噜噜噜夜夜爽亚洲精品 | 2022久久国产露脸精品国产 | 午夜美女福利直播 | 一区二区视频免费在线观看 | 中文字幕在线国产 | 久久大片 | 日韩免费在线观看视频 | 999成人国产 | 不卡视频一区二区三区 | 波多野结衣电影一区二区 | 亚洲综合狠狠干 | 亚洲色影爱久久精品 | 中文字幕二区三区 | 欧美一区影院 | 中文字幕视频免费观看 | 日韩精品一区在线播放 | 啪嗒啪嗒免费观看完整版 | 成人免费视频网站 | 日日夜夜婷婷 | 久久视频国产精品免费视频在线 | 国产无区一区二区三麻豆 | 人人舔人人干 | 丁香激情婷婷 | 午夜色站| 天天骚夜夜操 | 国产激情久久久 | 国产精品美女久久久久久久 | 成人在线中文字幕 | 久久99精品国产91久久来源 | 精品久久久久久久久久久久久久久久 | 色妞色视频一区二区三区四区 | 国产精品剧情在线亚洲 | 黄网站色视频 | 亚洲国产精品激情在线观看 | 亚洲国产成人高清精品 | 精品一区二区精品 | 波多野结衣在线播放一区 | av三级av | 手机色站 | 激情久久影院 | 99精品国产福利在线观看免费 | 欧美另类sm图片 | 日韩视频一区二区在线观看 | 免费中午字幕无吗 | av女优中文字幕在线观看 | 免费在线观看视频一区 | 婷婷色网| 国产伦精品一区二区三区免费 | 欧洲亚洲国产视频 | 久久免费视频精品 | 蜜臀一区二区三区精品免费视频 | 在线观看的av网站 | 欧美日韩三级 | 亚州精品一二三区 | 婷婷av在线 | 天天操天天摸天天爽 | 欧美激情亚洲综合 | 91激情 | wwwww.国产| 久久网页 | 亚洲色图 校园春色 | 久草影视在线 | 麻豆视频免费入口 | 波多野结衣视频一区二区三区 | 日韩精品一区在线播放 | 中文字幕频道 | 99精品一区二区三区 | 麻豆91视频| 五月婷婷欧美 | 一级黄色片在线观看 | 91成人在线免费观看 | 免费男女网站 | 国产精品中文字幕在线播放 | 日韩经典一区二区三区 | 久久亚洲欧美 | 国产精品一区二区在线 | 免费精品 | 久久免费片 | 色综合久久久久久中文网 | 成人免费在线观看av | 偷拍区另类综合在线 | 精品国产欧美 | 女人18片| 色中色资源站 | 91精品久久久久久粉嫩 | 成人免费视频播放 | 黄色软件在线观看 | 天天天干天天天操 | 中文字幕日本特黄aa毛片 | 久久久2o19精品 | 91九色蝌蚪视频在线 | 亚洲视频免费在线观看 | wwxxxx日本| 五月婷婷在线观看 | 免费色视频网址 | 欧美午夜视频在线 | 亚洲国产欧美在线看片xxoo | 国产不卡精品 | 狠狠色婷婷丁香六月 | 精品国产亚洲在线 | 天天干人人干 | 亚洲人毛片 | 久久精品视频中文字幕 | 国产视频色 | 日本视频高清 | 欧美一区二区在线 | 色午夜 | 在线观看国产一区 | 国产成人a亚洲精品v | 一区二三国产 | 免费av观看 | 五月婷婷精品 | 亚洲一二区精品 | 在线高清一区 | 欧美一区二区三区在线观看 | 欧美成人视 | 亚洲欧美日韩一级 | 国产精品手机视频 | 毛片网站在线 | 97色噜噜 | 国模视频一区二区三区 | 亚州欧美视频 | 99免费精品 | 亚洲黄色在线 | 国产亚洲午夜高清国产拍精品 | 一区二区三区四区免费视频 | 日日夜夜狠狠操 | 日韩电影中文字幕在线观看 | 麻豆免费视频网站 | 久久久福利视频 | 狠狠操综合 | 国产精品 日韩 欧美 | 日韩av网址在线 | av五月婷婷| 国产精品成人免费 | 国产无遮挡又黄又爽在线观看 | 免费一级日韩欧美性大片 | 欧美一级久久 | 国产明星视频三级a三级点| 免费在线观看a v | 久久久久中文 | 国产女人免费看a级丨片 | 在线看免费 | 中文字幕乱码电影 | 97福利在线观看 | 精品99视频| 欧美大片aaa | 狠狠色丁香久久综合网 | 精品国产视频一区 | 狠狠色伊人亚洲综合网站野外 | 久久免费中文视频 | 久久综合久久久久88 | 免费福利在线 | 在线99| 狠狠的干狠狠的操 | 国产一区久久久 | av中文字幕亚洲 | 日韩国产高清在线 | 天天操天天吃 | 中文字幕日韩免费视频 | 欧美一区二区日韩一区二区 | 国产精品6999成人免费视频 | 天天操天天操天天操天天操天天操天天操 | 97超碰人人澡 | 91试看| 日韩精品一区二区三区中文字幕 | 麻花豆传媒mv在线观看网站 | 亚洲欧美视频一区二区三区 | 成人小视频在线播放 | 黄污污网站 | 国产伦理久久 | 在线观看视频色 | 中文字幕av免费在线观看 | 日韩性xxxx| 中文字幕欧美日韩va免费视频 | 青青视频一区 | 亚洲在线成人精品 | 天天操天天谢 | 国产99久久久精品视频 | 久久久久久久久久久久久影院 | 午夜精品久久久99热福利 | 色婷丁香 | 亚洲成av人片在线观看 | 成人av一二三区 | 精品在线播放视频 | 91精品啪在线观看国产线免费 | 丁香花在线观看免费完整版视频 | 国内精品久久久久久久久久久久 | 美女av在线免费 | 色网av| a级黄色片视频 | 国产网站在线免费观看 | 中文字幕麻豆 | 久草精品电影 | 亚洲精品国产综合99久久夜夜嗨 | 日韩欧美区 | 久久久久久久久久久久久久免费看 | 日韩美视频 | 国内精品久久久久久久久 | 中文字幕第| 久久综合导航 | 日日爱av | 久草视频国产 | 免费电影一区二区三区 | 国产系列精品av | 婷婷色中文 | 国产精品亚洲片夜色在线 | 狠狠的干狠狠的操 | 黄色大片免费播放 | 在线国产能看的 | 人人爽人人爽人人片av | 成人av免费网站 | 天天天射 | 国产精品久久久久永久免费看 | 黄色在线看网站 | 日韩精品欧美视频 | 亚洲精品视频中文字幕 | 一区二区三区精品在线视频 | 国产第一页福利影院 | 五月婷婷在线综合 | 99欧美视频 | 天天色天天色 | 又色又爽又黄高潮的免费视频 | 欧美孕妇与黑人孕交 | 97香蕉视频 | 欧美另类xxxxx | 四虎成人网 | 又黄又爽又无遮挡的视频 | 国产成人精品a | 日韩av一区二区三区在线观看 | 亚洲精品免费观看 | 国产黄色av影视 | av一区二区在线观看中文字幕 | 亚洲香蕉在线观看 | 黄色av免费电影 | 亚洲成成品网站 | 国产精品剧情在线亚洲 | 色偷偷人人澡久久超碰69 | 麻豆免费看片 | 91在线影院| 国产精品免费久久久久影院仙踪林 | 国产美女在线精品免费观看 | www.狠狠操.com| www.夜色321.com | 正在播放五月婷婷狠狠干 | 97超碰人人干| 国产精品免费一区二区三区 | 激情五月在线视频 | 亚洲成人黄色在线 | 成人av一区二区三区 | 亚洲人在线视频 | 国产精品久久久久久婷婷天堂 | 日韩一区二区在线免费观看 | 国产日韩在线播放 | 国产精品久久久久久久久大全 | 成人中心免费视频 | 日本视频久久久 | 日本亚洲国产 |