Shell是什么?

shell本身是一個(gè)命令解釋器,介于操作系統(tǒng)的內(nèi)核(kernel)和用戶之間,可以執(zhí)行系統(tǒng)調(diào)用及系統(tǒng)命令等,讓用戶以此來(lái)與操作系統(tǒng)實(shí)現(xiàn)互動(dòng)。同時(shí),它也用來(lái)指一種計(jì)算機(jī)程序語(yǔ)言(類似于C、Python等)。一個(gè)shell程序一般被稱為一個(gè)腳本。

Shell語(yǔ)言的流派

目前,shell主要有兩大流派:

sh:

burne shell (sh) burne again shell (bash)

csh:

c shell (csh) tc shell (tcsh) korn shell (ksh)

目前,大部分linux系統(tǒng)預(yù)設(shè)的shell都是bash。

Shell 編程概述

在 Linux 下有一門(mén)腳本語(yǔ)言叫做:Shell 腳本,這個(gè)腳本語(yǔ)言可以幫助我們簡(jiǎn)化很多工作,例如批量運(yùn)行一些命令等,所以還是很有必要學(xué)習(xí)它的基本用法的,一個(gè)簡(jiǎn)單的 hello.sh 腳本像下面這樣。

#!/bin/bash echo "Hello World!"

第一行 #!/bin/bash 標(biāo)識(shí)該 Shell 腳本由哪個(gè) Shell 解釋:/bin/bash。將上面的兩行內(nèi)容寫(xiě)到文件hello.sh中,就可以執(zhí)行了:

執(zhí)行shell腳本方法1:

#這樣可以省略第一行的:#!/bin/bashsh ./hello.sh

執(zhí)行shell腳本方法2:賦予權(quán)限才可以執(zhí)行:

# 賦予可執(zhí)行權(quán)限chmod a+x hello.sh# 執(zhí)行 文件的第一行必須指定執(zhí)行shell的路徑:#!/bin/bash./hello.sh# 結(jié)果Hello World!

Shell 變量

Shell 變量分為 3 種:

用戶自定義變量預(yù)定義變量環(huán)境變量

定義變量需要注意下面 2 點(diǎn):

等號(hào)前后不要有空格:NUM=10一般變量名用大寫(xiě):M=1

使用 $ 符號(hào)調(diào)用變量,例如:

VAR="Hello Shell!"echo $VAR

注意:變量定義直接給變量取名字,變量值如果字符串中有空格等特殊字符需要用引號(hào)引起來(lái),這樣VAR變量中存儲(chǔ)了一個(gè)字符串,再次調(diào)用變量的值需要加符號(hào):$VAR

1. 用戶自定義變量

支持字符串類型,浮點(diǎn)等類型,常見(jiàn)有這 3 個(gè)前綴:

unset:刪除變量readonly:標(biāo)記只讀變量export:指定全局變量

一個(gè)例子:

執(zhí)行./hello.sh 1 2 3 4 5 的結(jié)果:

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

2. for 循環(huán)

這是一個(gè) for 循環(huán)基本使用例子,挺簡(jiǎn)單的,有點(diǎn)類似 Python:

3. while 循環(huán)

注意與 for 循環(huán)的區(qū)別:

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

shell命令應(yīng)用:

其實(shí)我們打開(kāi)的linux的終端也是一個(gè)shell,上面很多命令不用存到文件中也可以直接在終端運(yùn)行;下面舉例shell編程的運(yùn)用;

1.利用循環(huán)批量生成命令,分別存儲(chǔ)到不同的文件:

#注意:命令寫(xiě)成一行的時(shí)候用 ; 分隔不同語(yǔ)句塊。for i in xaa xab xac xad xae xaf xag xah xai xaj xak xal xam xan;do echo "perl /share/work/huangls/piplines/01.script/kegg_update_get_anno.pl $i $i.anno $i.fa" >$i.sh;done

1.《shell語(yǔ)言 一篇文章讓你讀懂linux shell編程--基礎(chǔ)篇》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無(wú)關(guān),侵刪請(qǐng)聯(lián)系頁(yè)腳下方聯(lián)系方式。

2.《shell語(yǔ)言 一篇文章讓你讀懂linux shell編程--基礎(chǔ)篇》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。

3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來(lái)源地址,http://f99ss.com/keji/346423.html