Shell腳本參數(shù)說明

????看了一遍shell的教程泵肄,感覺云里霧里的,感覺規(guī)則有點(diǎn)奇葩淑翼,可能跟他的語言屬性有關(guān)腐巢,一種命令語言,也是一種程序設(shè)計(jì)語言玄括。在這里是根據(jù)runoob教程進(jìn)行整理冯丙,方便以后自己查看

Linux命令搜索界面

基本說明:

1、“#!”:約定系統(tǒng)腳本需要什么解釋器來執(zhí)行(就是用哪一種shell)

eg:? ? ?#遭京! /bin/bash? echo "hello world"? ? ?這就是輸出一個(gè)hello world的腳本

2胃惜、運(yùn)行腳本

2種方式,1哪雕、先cd腳本到的腳本在的目錄船殉,執(zhí)行命令

chmod +x ./test.sh #使腳本具有執(zhí)行權(quán)限(test.sh是腳本的名稱)

./test.sh #執(zhí)行腳本

前面要添加“./”,讓他在當(dāng)前目錄尋找腳本文件斯嚎,如果沒有的話利虫,是在Pah目錄里尋找,只有/bin,/sbin,/usr/bin,/usr/sbin在PATH目錄里


一堡僻、空格幾種規(guī)則

(1)糠惫、不能有空格:

1、定義的參數(shù)和等號(hào)之間eg:your_name="echo"

(2)钉疫、必須有空格

1硼讽、所有的運(yùn)算符,中間都要有空格牲阁。eg:val=`expr 2 + 2`? ?$a -eq $b

2固阁、關(guān)系運(yùn)算符要放在"[]"內(nèi)壤躲,"["和"&a"之間有空格...各個(gè)之間都有空格

3、if語句也要有空格

a=10 b=20

if [ $a -eq $b ]

then

echo "a等于b"

else

echo "a不等于b"

fi


二您炉、變量相關(guān)參數(shù)說明

1柒爵、“$”:調(diào)用參數(shù)的時(shí)候使用役电,定義參數(shù)的時(shí)候不使用

your_name=“qinqu”? ? ? ?

echo $your_name

2赚爵、"{}":用來圈定變量的,可加可以不加法瑟,但是為了方便閱讀冀膝,最好加上

eg:echo "I am good at ${skill}Script"? ?如果這里不加的話,會(huì)引起閱讀和解析的混亂

3霎挟、readonly:只讀變量窝剖,不能修改,即使重新賦值之后酥夭,值也不會(huì)變

my_url="www.baidu.com"? ? ?

readonly my_url? ? ? ?

myurl="www.hp.com"

4赐纱、unset:刪除變量,但是不能刪除只讀變量熬北,刪除之后疙描,不會(huì)有任何輸出

my_url="www.baidu.com"? ?

unset my_url? ? ?

echo? $my_url

5curl:用處最多的應(yīng)該是下載文件 具體參照:curl詳情講解

下面是將一個(gè)地址下載到指定的文件里

curl -o baidu.html http://www.baidu.com

寫法等同于

curl?http://www.baidu.com >> baidu.html

6讶隐、cp:復(fù)制目錄

cp -rf /usr/test.txt? /desktop/receive.txt

注意點(diǎn):1起胰、cp不能復(fù)制目錄,如果要復(fù)制目錄巫延,要添加"-r"? ? ? 2效五、test是要復(fù)制的文件,receive.txt是接受的文件

7炉峰、rm:刪除文件或者目錄

rm -i ../usr/test.txt

-d:刪除硬連接? ? -f:強(qiáng)制刪除文件或者目錄? ? -i:刪除文件前詢問用戶? ?-r:遞歸刪除

8畏妖、source:通常用于重新執(zhí)行剛修改的初始化文件,并立即生效疼阔,而不必注銷或者重新登錄

9戒劫、make:工程編譯命令,實(shí)現(xiàn)工程管理

10竿开、“$#”:表示傳入?yún)?shù)個(gè)數(shù)? ? ? ?“$@”:表示全部傳入?yún)?shù)


end


三谱仪、函數(shù)相關(guān)的參數(shù)說明

1、“$??”:調(diào)用函數(shù)之后的返回值否彩,通過這個(gè)來獲取疯攒。也就是函數(shù)必須寫在前面,才能被調(diào)列荔。

funTest{

......

return $(($a+$b))

}

funTest? ?#調(diào)用

echo "輸入返回的參數(shù)為? $"? ? ?#然后才能調(diào)用他的返回值

2敬尺、函數(shù)參數(shù):在函數(shù)體內(nèi)部枚尼,通過 $n 的形式來獲取參數(shù)的值,eg:$1,$2,但是如果是10或者10以上的數(shù)字的話砂吞,要添加“{}”

“$*”:所有向腳本傳遞的參數(shù)? ? ? “$#”:傳遞到腳本的參數(shù)個(gè)數(shù)

funWithParam()

{ echo "第一個(gè)參數(shù)為 $1 !"

echo "第二個(gè)參數(shù)為 $2 !"

echo "第十個(gè)參數(shù)為 $10 !"

echo "第十個(gè)參數(shù)為 ${10} !"

echo "第十一個(gè)參數(shù)為 ${11} !"

echo "參數(shù)總數(shù)有 $# 個(gè)!"

echo "作為一個(gè)字符串輸出所有參數(shù) $* !" }

funWithParam 1 2 3 4 5 6 7 8 9 34 73

輸出結(jié)果:

第一個(gè)參數(shù)為 1 !

第二個(gè)參數(shù)為 2 !

第十個(gè)參數(shù)為 10 !

第十個(gè)參數(shù)為 34 !

第十一個(gè)參數(shù)為 73 !

參數(shù)總數(shù)有 11 個(gè)!

作為一個(gè)字符串輸出所有參數(shù) 1 2 3 4 5 6 7 8 9 34 73 !

備注:文件也可以添加參數(shù)署恍,規(guī)則和函數(shù)一樣,詳情看下面方法

echo "Shell 傳遞參數(shù)實(shí)例蜻直!";

echo "執(zhí)行的文件名:$0";

echo "第一個(gè)參數(shù)為:$1";

echo "第二個(gè)參數(shù)為:$2";

echo "第三個(gè)參數(shù)為:$3";

設(shè)置權(quán)限盯质,執(zhí)行腳本結(jié)果如下

$ chmod +x test.sh

$ ./test.sh 1 2 3

Shell 傳遞參數(shù)實(shí)例!

執(zhí)行的文件名:./test.sh

第一個(gè)參數(shù)為:1

第二個(gè)參數(shù)為:2

第三個(gè)參數(shù)為:3



四概而、運(yùn)算符的參數(shù)說明

1呼巷、算術(shù)運(yùn)算符,原聲bash不支持?jǐn)?shù)學(xué)運(yùn)算赎瑰,(1)必須要有expr王悍,(2)必須有空格,(3)必須是反引號(hào)餐曼。注意:乘號(hào)需要轉(zhuǎn)義是”\*“压储。

val=`expr 2 + 2`

echo "兩數(shù)之和為 : $val"

val=`expr $a \* $b`

echo "a * b : $val"

2、關(guān)系運(yùn)算符源譬,只支持?jǐn)?shù)字集惋,不支持字符串,eg:"-eq"(相等),"-ne"(不相等)瓶佳,"-gt"(大于),"-lt"(小于)

數(shù)字是否相等芋膘,也可以用 "=="來判斷,同理霸饲,大于小于都可以用">","<"來判斷

a=10

b=20

if [ $a -eq $b ]

#if [ $a == $b ]? “==”也可以去判斷

then

echo "a等于b"

else

echo "a不等于b"

fi

3为朋、字符串運(yùn)算符?

"=":是否相等?

"-z":長度為0,為0返回true??

"str"是否為空厚脉,不為空返回true

? if

[ $a ]

then

echo

"$a : 字符串不為空"

else

echo "$a : 字符串為空"

fi

runoob的關(guān)于運(yùn)算符的解釋习寸,比較詳細(xì)


五、流程控制的說明

1傻工、for循環(huán)的流程

#for循環(huán)遍歷數(shù)組

my_array=(A B "C" D)

for var in my_array

do

echo "for循環(huán)的數(shù)組的元素為 ${my_array[*]}"

done

數(shù)組定義為"()"霞溪,"*":為依次遍歷數(shù)組

循環(huán)為一般格式

for var in item1 item2 ... itemN

do

command1 command2 ... commandN

done

2、while循環(huán)語句

不斷循環(huán)執(zhí)行一系列命令中捆,格式為:

while condition

do?

commond

done

以下是個(gè)基本的while循環(huán):

#! /bin/bash

int=1

while($int < 5)

do

echo $int

let "int++"

done

3鸯匹、case循環(huán)語句

case的語句格式如下:注意一下幾點(diǎn)(1)";;"相當(dāng)于break,(2)每一個(gè)模式以右括號(hào)結(jié)束泄伪,必須為變量和常數(shù)(3)如果沒有匹配值殴蓬,"*"捕獲該值

case 值 in

模式1)

command1 command2 ... commandN ;;

模式2) command1 command2 ... commandN ;;

esac

demo實(shí)例

echo "請輸入1-5之間的數(shù)字"

echo "您輸入的數(shù)字為"

read input

case $input in

1) echo "您選擇了1";;

2) echo "您選擇了2";;

3) echo "您選擇了3";;

4) echo "您選擇了4";;

esac

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蟋滴,隨后出現(xiàn)的幾起案子染厅,更是在濱河造成了極大的恐慌痘绎,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肖粮,死亡現(xiàn)場離奇詭異孤页,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)涩馆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門行施,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人凌净,你說我怎么就攤上這事悲龟。” “怎么了冰寻?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長皿渗。 經(jīng)常有香客問我斩芭,道長,這世上最難降的妖魔是什么乐疆? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任划乖,我火速辦了婚禮,結(jié)果婚禮上挤土,老公的妹妹穿的比我還像新娘琴庵。我一直安慰自己,他們只是感情好仰美,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布迷殿。 她就那樣靜靜地躺著,像睡著了一般咖杂。 火紅的嫁衣襯著肌膚如雪庆寺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天诉字,我揣著相機(jī)與錄音懦尝,去河邊找鬼。 笑死壤圃,一個(gè)胖子當(dāng)著我的面吹牛陵霉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播伍绳,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼踊挠,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了墨叛?” 一聲冷哼從身側(cè)響起止毕,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤模蜡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后扁凛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體忍疾,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年谨朝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了卤妒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,902評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡字币,死狀恐怖则披,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情洗出,我是刑警寧澤士复,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站翩活,受9級(jí)特大地震影響阱洪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜菠镇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一冗荸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧利耍,春花似錦蚌本、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至出嘹,卻和暖如春席楚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背税稼。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工烦秩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人郎仆。 一個(gè)月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓只祠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親扰肌。 傳聞我的和親對象是個(gè)殘疾皇子抛寝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容