真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Shell語(yǔ)法的示例分析

這篇文章給大家分享的是有關(guān)Shell語(yǔ)法的示例分析的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

沈北新網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)建站從2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。

轉(zhuǎn)義字符:

Shell語(yǔ)法的示例分析

在對(duì)文本解析時(shí),雙引號(hào)會(huì)對(duì)字符串解析,單引號(hào)保持字面含義。

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

echo $?本bash最近一次進(jìn)程退出碼

雙引號(hào)用于保持引號(hào)內(nèi)所有字符的字面值(回車(chē)也不例外),但以下情況除外:

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

條件測(cè)試:退出碼0表示成功,非0表示失敗

對(duì)于×××值言,

-gt表示大于即great

-ge表示大于等于great equal

-eq表示相等equal

-lt表示小于即little

-le表示小于等于

read val表示從標(biāo)準(zhǔn)輸入讀到val

對(duì)于字符串比較:直接使用=,==(建議使用),或!=

可選擇$str1==$str2,或"X$str1"=="X$str2"(建議,防止$str1為空時(shí)直接比較,X為任意字符)

此處不可使用單引號(hào),單引號(hào)只取字面意思

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

運(yùn)行結(jié)果:

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

運(yùn)行結(jié)果:

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

-d判斷是否存在且是目錄

-f判斷是否存在且是普通文件

dir存在且是目錄,test不存在,test.sh存在是普通文件

Shell語(yǔ)法的示例分析

比較字符串最好寫(xiě)成如下方式:

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

if-elseif語(yǔ)句:分支

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

$1是一個(gè)自動(dòng)變量,腳本生成時(shí)創(chuàng)建:第一個(gè)參數(shù),即test.sh.

序列號(hào)容器:vector,數(shù)組下標(biāo)從0開(kāi)始

關(guān)聯(lián)號(hào)容器:腳本容器(map:以字符串作為下標(biāo))

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

轉(zhuǎn)載:

shell中[[]]與[]的區(qū)別?

1.概念上來(lái)說(shuō)

"[[",是關(guān)鍵字,許多shell(如ash bsh)并不支持這種方式。ksh, bash(據(jù)說(shuō)從2.02起引入對(duì)[[的支持)等支持。
"["是一條命令, 與test等價(jià),大多數(shù)shell都支持。在現(xiàn)代的大多數(shù)sh實(shí)現(xiàn)中,"["與"test"是內(nèi)部(builtin)命令。

2. 相同:二者都支持算術(shù)比較和字符串比較表達(dá)式(具體使用可能有點(diǎn)不同)

(1)"-gt", "-lt"是算術(shù)比較操作符,用于比較整數(shù)的大小。
(2)">", "<"是字符串比較操作符,用于比較字符串的大小,使用字典順序,與當(dāng)前的locale有關(guān)。

(3)關(guān)于字符串比較。[...]、``.``.``.``中都可以對(duì)字符串進(jìn)行比較,比較的順序是"字典順序"。對(duì)ascii字符來(lái)講,碼表中排列在前的較小,這里只要用了"<"、">",就表示是字符串比較,那么9 > 100為真,因?yàn)檫@實(shí)際上等價(jià)于‘9’ > ‘100’,9在碼表中排在1后面,所以字符串"9"大于字符串"100"。只要搞清楚了何時(shí)是算術(shù)比較,何時(shí)是串比較,一般就不會(huì)出錯(cuò)了。<><>

(4)建議在使用數(shù)值比較的時(shí)候,使用let,(())命令,否則容易出錯(cuò);<>

2.1  “[“用法<>

$ [ 2 -lt 10 ]&&echo true&&echo false<>

true<>

$  [ 2 -gt 10 ]&&echo true||echo false<>

false<>

按字符串比較

$  [ 2 \< 10 ]&&echo true||echo false <>

false<>

$  [ 2 \> 10 ]&&echo true||echo false  #you should use "\>"<>

true<>

2.2 “[[“用法<>

$  ` 2 -gt 10 `&&echo true||echo fa<>lse

false<>

$  ` 2 -lt 10 `&&echo true||echo false<>

true<>

仍然按字符串比較<>

$  [[ 2 < 10 ]]&&echo true||echo false<>

false<>

$  [[ 2 > 10 ]]&&echo true||echo false<>

true<>

<>

3.相同:都支持簡(jiǎn)單的模式匹配<>

這里的模式匹配要簡(jiǎn)單得多,類(lèi)似文件名的統(tǒng)配符的擴(kuò)展規(guī)則。還要注意等號(hào)右端的模式不能用引號(hào)括起,使用引用關(guān)閉了某些元字符的特殊功能<>

<>

3.1  “[“用法<>

$ [ test = test ]&&echo true||echo false <>

true<>

$ [ test = t*t ]&&echo true||echo false <>

true<>

$ [ test = t..t ]&&echo true||echo false  #not match.<>

false<>

$ [ test = "t??t" ]&&echo true||echo false #alert: don't quote the pattern,使用引用關(guān)閉了?的特殊功能<>

false<>

<>

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

<>

3.2  “[[“用法<>

$ [[ test = test ]]&&echo true||echo false  #normal compare<>

true<>

$ [[ test = t*t ]]&&echo true||echo false  #pattern match.<>

true<>

$ [[ test = t..t ]]&&echo true||echo false  #not match.<>

false<>

$ [[ test = t??t ]]&&echo true||echo false <>

true<>

$ [[ test = "t??t" ]]&&echo true||echo false # alert: don't quote the pattern,使用引用關(guān)閉了?的特殊功能<>

false<>

<>

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

4.不同點(diǎn)<>

4.1邏輯與和邏輯或<>

(1)"[" :邏輯與:"-a";邏輯或:"-o";<>

(2)"[[":邏輯與:"&&";邏輯或:"||"<>

$ [[ 1 < 2 && b > a ]]&&echo true||echo false<>

true<>

$ [[ 1 < 2 -a b > a ]]&&echo true||echo false<>

bash: syntax error in conditional expression<>

bash: syntax error near `-a'<>

$ [ 1 < 2 -a b > a ]&&echo true||echo false<>

true<>

$ [ 1 < 2 && b > a ]&&echo true||echo false  #wrong syntax<>

bash: [: missing `]'<>

false<>

$ [ 1 < 2 \&\& b > a ]&&echo true||echo false  #aslo wrong<>

bash: [: &&: binary operator expected<>

false<>

<>

Shell語(yǔ)法的示例分析

Shell語(yǔ)法的示例分析

<>

4.2命令行參數(shù)<>

(1)[ ... ]為shell命令,所以在其中的表達(dá)式應(yīng)是它的命令行參數(shù),所以串比較操作符">" 與"<"必須轉(zhuǎn)義,否則就變成IO重定向了;<>

(2)由于"[["是關(guān)鍵字,不會(huì)做命令行擴(kuò)展,所以在[[中"<"與">"不需轉(zhuǎn)義,但是相對(duì)的語(yǔ)法就稍嚴(yán)格些。例如在[ ... ]中可以用引號(hào)括起操作符,因?yàn)樵谧雒钚袛U(kuò)展時(shí)會(huì)去掉這些引號(hào),而在` `.``.``.` `則不允許這樣做;<>

$ [ "-z" "" ]&&echo true||echo false<>

true<>

$ [ -z "" ]&&echo true||echo false<>

true<>

$ [[ "-z" "" ]]&&echo true||echo false

bash: conditional binary operator expected

bash: syntax error near `""'

$ [[ -z "" ]]&&echo true||echo false

true

4.3  ` `.``.``.` `進(jìn)行算術(shù)擴(kuò)展,而[ ... ]不做

$ [[ 99+1 -eq 100 ]]&&echo true||echo false

true

$ [ 99+1 -eq 100 ]&&echo true||echo false

bash: [: 99+1: integer expression expected

false

$ [ $((99+1)) -eq 100 ]&&echo true||echo false

true

4.4正則表達(dá)式匹配區(qū)別

[]需加\[,\]轉(zhuǎn)義。

感謝各位的閱讀!關(guān)于“Shell語(yǔ)法的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!


本文題目:Shell語(yǔ)法的示例分析
文章分享:http://weahome.cn/article/iehsos.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部