日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

我們?cè)谄綍r(shí)的編程學(xué)習(xí)中,或多或少,或早或晚,都要接觸到linux服務(wù)器;
熟練掌握shell編程技術(shù),是從小白變大牛的必經(jīng)之路!
通過(guò)本文知識(shí),讓我們花5分鐘時(shí)間徹底搞懂shell編程,相信聰明的你,看完一定會(huì)有收獲!


【正文開(kāi)始】


什么是shell?
Shell 是一個(gè)用 C 語(yǔ)言編寫(xiě)的程序,它是用戶使用 Linux 的橋梁。這個(gè)應(yīng)用程序提供了一個(gè)界面,用戶通過(guò)這個(gè)界面訪問(wèn)操作系統(tǒng)內(nèi)核的服務(wù)。
Shell 編程跟 JAVAScript 編程一樣,只要有一個(gè)能編寫(xiě)代碼的文本編輯器和一個(gè)能解釋執(zhí)行的腳本解釋器就可以了。
Shell 種類有很多,最常用的的是:Bourne Again Shell(即:/bin/bash,基本等同 /bin/sh),它非常易用且完全免費(fèi),是大多數(shù)Linux 系統(tǒng)默認(rèn)的 Shell
大家常見(jiàn)的shell腳本的第一行內(nèi)容是: #!/bin/bash
這一句就是告訴系統(tǒng)需要使用 /bin/bash 腳本解釋器來(lái)執(zhí)行。

 

編寫(xiě)第一個(gè)shell腳本實(shí)例: vim test.sh
然后輸入:
#!/bin/bash
echo "Hello World !"

 

# 運(yùn)行 Shell 腳本的兩種方法:
1、作為可執(zhí)行程序
chmod +x ./test.sh #使腳本具有執(zhí)行權(quán)限
./test.sh #直接執(zhí)行腳本(./不可省略,表示在當(dāng)前目錄查找,否則默認(rèn)去環(huán)境變量PATH里找)
2、作為解釋器參數(shù)
例1: /bin/sh test.sh
例2: /bin/php test.php
這種方式運(yùn)行的腳本,不需要在第一行指定解釋器信息(寫(xiě)了也沒(méi)用)

shell的注釋
單行注釋: #
多行注釋:

<
注釋內(nèi)容...
注釋內(nèi)容...
注釋內(nèi)容...
EOF
# 變量操作
定義:

str=abcd

注意: 變量名str和等號(hào)之間不能有空格(否則報(bào)錯(cuò):變量名未找到命令),不能有特殊符號(hào)(?*),不能以數(shù)字開(kāi)頭(可以使用下劃線和大寫(xiě))


使用:${變量名} (大括號(hào)雖然是可選的,但是推薦用)(有利于區(qū)分邊界,防止意外情況)

只讀: readonly 變量名 (沒(méi)有大括號(hào))
刪除: unset 變量名 (刪除后不能再用,不能刪除只讀變量)

# 字符串操作
str="abcd"
取長(zhǎng):echo ${#str} # 輸出 4
截取: echo ${str:1:5} # 輸出 bcd(不會(huì)報(bào)越界)
拼接:echo ${str}'abc' # 輸出 abcabc
查找:echo `expr index "$str" cd` # 輸出3(注意必須是反引號(hào))

判空:if test $str # 等價(jià)于 if [ $str ]

判等:if test $str = "abcd" # 等價(jià)于 if [ $str = "abcd" ]

# 數(shù)組操作
共3種定義方式:
1)array_name=(value0 value1 value2 value3)
2)array_name=(
value0
value1
value2
value3
)
3)
array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen
讀取數(shù)組: valuen=${array_name[n]}
獲取數(shù)組所有元素:echo ${array_name[@]}
獲取數(shù)組長(zhǎng)度: length=${#array_name[@]}

# 自定義函數(shù)的實(shí)現(xiàn)

定義:
func1(){
echo "第一個(gè)參數(shù)為 $1 !"
echo "第二個(gè)參數(shù)為 $2 !"
}
調(diào)用: func1 p1 p2

# 條件的處理
if condition1
then
command1
elif condition2
then
command2
else
commandN
fi
# 循環(huán)的處理
1)for的寫(xiě)法
for var in item1 item2 ... itemN
do
...
done

 

一個(gè)例子:
for loop in 1 2 3 4 5
do
echo "The value is: $loop"
done

 

2)while 的寫(xiě)法

int=1
while(( $int<=5 ))
do
echo $int
let "int++"
done

## 文件測(cè)試運(yùn)算符
操作符 說(shuō)明 舉例
-e 檢測(cè)文件(包括目錄)是否存在
-d 檢測(cè)文件是否是目錄
-r 檢測(cè)文件是否可讀
-w 檢測(cè)文件是否可寫(xiě)
-x 檢測(cè)文件是否可執(zhí)行
-s 檢測(cè)文件是否為空(文件大小是否大于0),不為空返回 true
-b 檢測(cè)文件是否是塊設(shè)備文件,
-c 檢測(cè)文件是否是字符設(shè)備文件
-p 檢測(cè)文件是否是管道文件
-l 檢測(cè)文件是否存在并且是一個(gè)符號(hào)鏈接。
-f 檢測(cè)文件是否是普通文件(既不是目錄,也不是設(shè)備文件)
-g 檢測(cè)文件是否設(shè)置了 SGID 位
-u 檢測(cè)文件是否設(shè)置了 SUID 位
-k 檢測(cè)文件是否設(shè)置了粘著位(Sticky Bit)
-S: 檢測(cè)某文件是否是 socket。

 

一個(gè)示例:
file="test.sh"
if test -r $file
then
echo "文件可讀"
else
echo "文件不可讀"
fi

 

【全文完】

分享到:
標(biāo)簽:Shell
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定