




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Shell腳本入門,什么是shell?,命令解釋器俗稱外殼程序 用戶通過(guò)shell向kernel發(fā)送指令,kernel再向硬件發(fā)送指令 Shell版本眾多,例如常聽(tīng)到的 Bourne Shell (sh) 、在Sun中默認(rèn)的C Shell、 商業(yè)上常用的K SHell以及TCSH 等,每一種Shell都各有其特點(diǎn)。 Linux 使用的是Bourne Again Shell(簡(jiǎn)稱 bash),這個(gè) Shell是Bourne Shell的增強(qiáng)版本,是基于GNU的架構(gòu)下發(fā)展出來(lái)的。,Bash shell特點(diǎn),命令補(bǔ)全補(bǔ)全功能 如果在執(zhí)行命令的時(shí)候不想按下太多的按鍵(例如命令pcprofiledump
2、),在輸入了 pcprofile 之后,再按下 Tab 鍵的話,那么 bash 馬上會(huì)自動(dòng)的將后面的dump接上來(lái)。 如果有重復(fù)的命令,那么按下兩次 Tab 將會(huì)把所有重復(fù)的命令列出來(lái)。 直接在提示字符后面連按兩次 鍵,則系統(tǒng)會(huì)將所有可以使用的命令都列出來(lái)。 例如,如果想要知道目前系統(tǒng)里面,所有以b開(kāi)頭的命令呢?就是按下 b 之后,連按兩次就ok。,Bash shell特點(diǎn),文件名稱補(bǔ)全功能 如果用 vim 來(lái)讀取某個(gè)文件,例如 /etc/man.config 這個(gè)文件,那么可以輸入 vim /etc/man之后,直接按下 鍵,該文件名稱就會(huì)被自動(dòng)的補(bǔ)上。 同樣,出現(xiàn)文件多個(gè)匹配項(xiàng)時(shí),可以按下
3、兩個(gè)TAB鍵來(lái)顯示所有匹配項(xiàng)。 這樣大大增加了指令輸入的正確率。,Bash shell特點(diǎn),命令記憶能力 Linux可以記憶以前輸入過(guò)的命令,只要使用上下鍵就可以找到以前執(zhí)行的指令來(lái)執(zhí)行。 這些命令按照先后順序記錄在用戶Home目錄下的隱藏文件.bash_history中 .bash_history里面記錄了這一次登錄以前執(zhí)行過(guò)的命令,本次登錄執(zhí)行的命令都保存在內(nèi)存中,只有成功注銷之后,內(nèi)存數(shù)據(jù)才會(huì)刷新到.bash_history文件中 有時(shí)候.bash_history文件中記錄了你包含在指令中的密碼,可能引起安全問(wèn)題,所以最好還是設(shè)置命令的記錄數(shù)量不要太大。,Bash shell特點(diǎn),命令名
4、稱: history 用法:history number 顯示最近 number個(gè)命令,不指定number則選擇全部。 執(zhí)行歷史命令: 方法1:!number 執(zhí)行歷史命令中編號(hào)為number的那個(gè)命令 方法2:!command 執(zhí)行歷史命令中最近一次以command開(kāi)頭的命令,命令無(wú)須打全,只要匹配前面幾個(gè)字符即可。 方法3:! 執(zhí)行上一條命令,Bash shell特點(diǎn),命令別名設(shè)置功能 假如我需要知道某個(gè)目錄底下的所有文件信息(包含隱藏文件)及所有的文件屬性,那么我就必須要輸入ls -al 這樣的指令。 每次都輸入多麻煩! 可以通過(guò)為自己經(jīng)常使用的命令(包括參數(shù))定義別名來(lái)避免過(guò)多輸入。
5、例如:alias lm=ls -al (注意=兩邊不要有空格) 那么以后lm就等于執(zhí)行l(wèi)s -al 直接輸入alias,可以顯示目前以及定義好的所有別名,編譯型語(yǔ)言和腳本編程語(yǔ)言,許多大中型程序是用編譯型語(yǔ)言寫的,例如:C/C+/java。這類程序只要從源代碼轉(zhuǎn)換成目標(biāo)代碼,就能直接在計(jì)算機(jī)上執(zhí)行。(java類似。它是轉(zhuǎn)換成字節(jié)碼,在java虛擬機(jī)上執(zhí)行) 編譯型語(yǔ)言的好處是效率高,它的二進(jìn)制代碼可直接被cpu執(zhí)行。缺點(diǎn)是它們直接處理的是字節(jié)、整數(shù)、浮點(diǎn)數(shù)等機(jī)器層的對(duì)象。例如,C+很難進(jìn)行“將一個(gè)目錄內(nèi)的所有文件復(fù)制到另一個(gè)目錄”這樣簡(jiǎn)單的操作。 腳本編程語(yǔ)言通常是解釋型的語(yǔ)言,這類程序的執(zhí)行
6、是由解釋器讀入程序代碼,并將其轉(zhuǎn)換成內(nèi)部的形式,再執(zhí)行。這類語(yǔ)言有awk、perl、python、javascript、Ruby和shell。用腳本編程語(yǔ)言寫的程序代碼,稱為腳本程序。 腳本編程語(yǔ)言的好處是,它多半運(yùn)行在比編譯器還高的層級(jí),能輕易處理文件和目錄之類的對(duì)象。缺點(diǎn)是:它的效率通常不如編譯型語(yǔ)言高。它們并不能直接被cpu執(zhí)行,執(zhí)行時(shí)還需要進(jìn)行轉(zhuǎn)換。,SHELL腳本的優(yōu)點(diǎn),shell腳本常用于系統(tǒng)管理工作,或是結(jié)合現(xiàn)有的程序以完成小型的、特定的工作。通過(guò)把工作用到的命令串起來(lái),放進(jìn)一個(gè)獨(dú)立的腳本中,以后只要執(zhí)行該程序就能完成工作了。 shell是各類unix版本的通用功能,且經(jīng)過(guò)了PO
7、SIX的標(biāo)準(zhǔn)化。一個(gè)編寫良好的shell腳本,可以應(yīng)用到多個(gè)系統(tǒng)上。因此之所以使用shell腳本是基于: 簡(jiǎn)單性:shell是一個(gè)高級(jí)語(yǔ)言;通過(guò)它可以簡(jiǎn)潔地表達(dá)復(fù)雜的操作。 可移植性:使用POSIX所定義的功能,可以做到腳本無(wú)需修改就可在不同的類unix系統(tǒng)上運(yùn)行。 開(kāi)發(fā)容易:可以在較短時(shí)間內(nèi)完成一個(gè)功能強(qiáng)大又好用的腳本。,SHELL腳本的格式,命令從上向下,從左向右 地分析和執(zhí)行,如果讀到一個(gè) 回車鍵,就嘗試開(kāi)始執(zhí)行該行。 右圖是一個(gè)shell腳本 第一行#!/bin/bash指明這個(gè) 腳本使用的解釋器是bash,腳本 的語(yǔ)法是用bash的語(yǔ)法。例如perl腳本的第一行是#!/usr/bin
8、/perl shell腳本用#號(hào)作為一行注釋開(kāi)始。#到行尾之間的內(nèi)容被視為注釋 接下來(lái)就是程序部分 告知執(zhí)行的成功與否可以用命令exit 來(lái)結(jié)束腳本的執(zhí)行,并且傳回一個(gè)數(shù)值給系統(tǒng)。將來(lái)可以用$?來(lái)獲取它傳回的值。 大家猜一下返回值的范圍是多少 ,怎么驗(yàn)證?,rootlocalhost # cat helloworld.sh #!/bin/bash #my first shell script #history: 2012.01.01 echo “hello world” exit 0,Shell腳本執(zhí)行方式一,父進(jìn)程創(chuàng)建一個(gè)子進(jìn)程,在子進(jìn)程里運(yùn)行命令解釋器,由解釋器讀取腳本并執(zhí)行相應(yīng)的功能。
9、假設(shè)寫完一個(gè)腳本文件/home/jim/123.sh后,該如何執(zhí)行呢? 有以下幾種方式: 以bash進(jìn)程來(lái)執(zhí)行:通過(guò)“bash 123.sh” 來(lái)執(zhí)行。 直接命令執(zhí)行:123.sh文件必須要具備可讀與可執(zhí)行權(quán)限: 絕對(duì)路徑:使用/home/jim/123.sh來(lái)執(zhí)行命令; 相對(duì)路徑:假設(shè)工作目錄在/home/jim/,這可以使用./123.sh來(lái)執(zhí)行; 變量“PATH”功能:將123.sh放在PATH指定的目錄下,例如:放在/bin/里,則可直接通過(guò)文件名123.sh來(lái)執(zhí)行。,Shell環(huán)境變量,環(huán)境變量的形式通常如:name=value Linux內(nèi)核并不查看這些字符串,他們的解釋完全依賴于
10、各個(gè)應(yīng)用程序。例如,shell就使用了大量的環(huán)境變量,其中一些在登錄時(shí)自動(dòng)設(shè)置,如HOME和USER等,有些則由用戶設(shè)置。 功能:我們?cè)趕hell中設(shè)置環(huán)境變量以控制shell的動(dòng)作。例如設(shè)置了MAIL就告訴shell應(yīng)該到哪里去取郵件。 顯示變量值的命令:echo 用法:echo $variable 例如:在環(huán)境變量前加上$就代表使用該變量的值 echo $PATH echo $HOME 查看當(dāng)前所有Linux環(huán)境變量的命令:env,Shell配置文件,shell在啟動(dòng)時(shí)會(huì)讀取一些配置文件。下面是bash的配置文件,實(shí)際上他們也是shell腳本。/etc目錄下的是系統(tǒng)級(jí)的配置文件,用戶家目錄
11、下的兩個(gè)配置文件是用戶的個(gè)性化。 /etc/profile 設(shè)置系統(tǒng)級(jí)的環(huán)境變量 PATH、HOME、HISTSIZE等。第一次登錄時(shí)運(yùn)行該腳本。 /.bash_profile 用戶可在這里設(shè)置環(huán)境變量或啟動(dòng)程序。當(dāng)用戶登錄時(shí),該文件僅僅執(zhí)行一次 。 /.bashrc 用戶可在這里設(shè)定別名和函數(shù)。啟動(dòng)shell時(shí)都會(huì)執(zhí)行該配置文件。 /etc/bashrc 啟動(dòng)shell時(shí)運(yùn)行該腳本。 /.bash_logout 退出shell時(shí)執(zhí)行。,根據(jù)啟動(dòng)shell的方式不同,配置好腳本的執(zhí)行也有不同: 對(duì)于login shell:即通過(guò)輸入用戶名和密碼登陸或用su - 獲得的shell。在shell啟
12、動(dòng)時(shí)會(huì)按14的順序依次執(zhí)行這四個(gè)配置腳本。這時(shí)獲得的是一個(gè)完全和用戶名相符的shell環(huán)境。對(duì)于non-login shell:不需登錄流程或以su的方式切換用戶獲得的shell。這種情況下,啟動(dòng)shell時(shí)只執(zhí)行和兩個(gè)配置腳本。例如,圖形界面下啟動(dòng)一個(gè)終端,或者在原來(lái)的bash環(huán)境下再輸入bash,都不需要用戶名和密碼;這兩次獲得的shell就稱為non-login shell。這時(shí)許多環(huán)境還未改變。比如PATH,因?yàn)樗窃诤椭性O(shè)置的。,變量類型,變量是用一固定的字符串或符號(hào)來(lái)表示一個(gè)可變的值。和C語(yǔ)言中相似。有以下幾種變量: 用戶自定義變量 位置變量 預(yù)定義的特殊變量 環(huán)境變量(expor
13、t),用戶自定義變量,變量無(wú)須事先聲明 變量的可以用字符(a-z A-z)數(shù)字和下劃線組成,但必須以字符開(kāi)頭。 變量與變量?jī)?nèi)容(值)用等號(hào)連接,等號(hào)左右不能有空格,對(duì)變量賦值 #a=“hello shell” 打印變量 #echo $a,變量引用,$加變量名即可引用該變量的值。例如:$var 使用 可以使變量名和后續(xù)字母分開(kāi)。例如: var=de $varabc的值為deabc $varabc是取變量varabc的值,若之前沒(méi)有創(chuàng)建過(guò)varabc那么它的值為空 未定義的變量值為空,Shell變量賦值,雙引號(hào)內(nèi)的字符如 $ ” 等以特殊字符解讀。 單引號(hào)內(nèi)的特殊字符全部當(dāng)做普通字符處理。,a=“
14、aa” b=“$a bb” c=$a cc echo $a echo $b echo $c,Shell變量賦值,把命令的執(zhí)行結(jié)果賦值給變量(例如ls),用command,或$(command) 注意:是反引號(hào)(backquote), 不是單引號(hào)(quote),將ls的輸出結(jié)果作為變量a的值 #a=ls 等價(jià)于 a=$(ls) 打印變量 #echo $a,環(huán)境變量,環(huán)境變量是指能被子進(jìn)程所繼承的變量。子進(jìn)程只會(huì)繼承父進(jìn)程的環(huán)境變量 (1)HOME:用戶主目錄的全路徑名。如/home/myname (2)LOGNAME:即用戶注冊(cè)名 (3)PWD:當(dāng)前工作目錄的路徑。 (4)PATH:shell查
15、找命令的路徑(目錄)列表,各個(gè)目錄用冒號(hào)( : )隔開(kāi)。 (5)PS1:shell的主提示符。 $ PS1=$LOGNAME (6)SHELL:當(dāng)前使用的shell。通常,它的值是/bin/bash。 (7)TERM:終端類型。 可以用env命令列出當(dāng)前環(huán)境下的所有環(huán)境變量及其值,也可用echo命令察看任何一個(gè)環(huán)境變量的值。 當(dāng)更改了環(huán)境變量的值以后,往往利用export命令將這些變量輸出,使它們成為公用量。例如: $ export HOME PATH PS1 用戶自定義變量可以通過(guò)export命令,變成環(huán)境變量。例如: # asdf=1234 執(zhí)行env,查看是否有變量asdf # expo
16、rt asdf 執(zhí)行env ,查看是否有變量asdf,這一次asdf變成環(huán)境變量,shell腳本的執(zhí)行方式二,bash進(jìn)程本身就是個(gè)shell腳本解釋器,直接由該進(jìn)程讀取shell腳本并執(zhí)行。好處是:它的執(zhí)行效果會(huì)在當(dāng)前shell中生效。該方法是通過(guò)內(nèi)置命令source或 . 實(shí)現(xiàn)的。 經(jīng)常用在修改了的bash的配置文件在當(dāng)前環(huán)境下生效,可以使用命令source 或“.”后接配置文件來(lái)執(zhí)行配置腳本。 范例:在/.bashrc里設(shè)置了alias別名,想在當(dāng)前環(huán)境立即可用 # vim /.bashrc 打開(kāi)文件,在該文件寫入下面一行,保存并退出 alias hello=echo “welcome
17、today is $(date +%Y:%m:%d)” # source /.bashrc 或者 . /.bashrc 接下來(lái)就可以使用該別名了 在/.bash_profile里將當(dāng)前用戶的家目錄加到PATH路徑中 # vim /.bash_profile 打開(kāi)文件,寫入下面兩行,保存并退出 PATH=$PATH:$HOME export PATH #source /.bash_profile 或者 . /.bash_profile 接下來(lái),直接輸入家目錄下的可執(zhí)行程序的文件名就可以執(zhí)行了。,預(yù)先定義的特殊變量,$當(dāng)前進(jìn)程的進(jìn)程號(hào)。 $!上一個(gè)后臺(tái)命令對(duì)應(yīng)的進(jìn)程號(hào)。 $?上一條命令執(zhí)行后的返回
18、碼,也稱退出碼。每條命令都有返回碼,0代表執(zhí)行成功,當(dāng)用于判斷式時(shí),表達(dá)式為真,非零代表執(zhí)行失敗,用于判斷式時(shí),表達(dá)式為假。 $#除腳本名外,命令行上參數(shù)的個(gè)數(shù)。 $*表示在命令行上實(shí)際給出的所有實(shí)參。如輸入下面的命令行: exam3 A B C D E F G H I J K 則$* 是:A B C D E F G H I J K 而”$*”等價(jià)于: “$1 $2 $3”,即:”A B C D E F G H I J K” $它與$*基本功能相同。區(qū)別在于當(dāng)用引號(hào)時(shí) ”$”與”$*”不同,”$”參數(shù)是彼此分離的。 ”$”就等價(jià)于: $1 $2 在上面情況下, “$” 就是“A” “B” “C
19、”“K”,預(yù)先定義的特殊變量,變量名為0的值代表正在執(zhí)行的腳本名稱 變量名為1到99的值代表命令行傳入的參數(shù)。 變量名大于10時(shí),必須用括起來(lái),例如取第十個(gè)參數(shù)用$10 輸入下面的命令行: # exam3 A B C D E F 那么 $0的值為exam3 $1到$6的值分別對(duì)應(yīng)A到F 內(nèi)置命令shift功能:造成參數(shù)變量號(hào)碼偏移 用法:shift n 例如:上面的輸入,執(zhí)行命令 shift 3 之后,這些參數(shù)變量從第四個(gè)開(kāi)始對(duì)應(yīng)。 $1的值為D $2為E $3為F $4、$5、$6的值為空 直接shift等價(jià)于 shift 1,Shell算術(shù)運(yùn)算,+ - * / % 分別對(duì)應(yīng)加、減、乘、除、
20、取余 只需將特定的算術(shù)表達(dá)式用 “$(” 和 “)” 括起來(lái)。a=$(4-2) a的值為2,a=10 b=2 echo $($a+$b) echo $($a-$b) echo $($a*$b) echo $($a/$b) echo $($a%$b),跟用戶交互,用bash內(nèi)嵌的read命令 功能:讀取來(lái)自鍵盤的輸入,并傳給變量 用法:read 選項(xiàng) 變量名 選項(xiàng): -p 字符串 后面接字符串給出提示 -t 時(shí)間 后接等待的秒數(shù),即不會(huì)一直等待用戶輸入,#echo “input your name” #read name 上面兩行可以用下面一行代替 #read -p “input your na
21、me” name #echo “my name is $name”,Shell邏輯判斷, then echo usage: command filename exit 1; fi if test -f $1; then echo file $1 exists! fi,#!/bin/bash $# != 1 then 動(dòng)作 elif 表達(dá)式; then 動(dòng)作 elif 表達(dá)式; then 動(dòng)作 else 動(dòng)作 fi,#!/bin/bash if $# != 1 ; then echo usage: command number exit 1; fi if $1 -lt 0 ; then echo
22、 $1 is less than 0 elif $1 -lt 10 ;then echo $1 is betwen 0 and 9 elif $1 -lt 100 ; then echo $1 is between 10 and 99 else echo $1 is great equal than 100 fi,這個(gè)程序用來(lái)展示測(cè)試語(yǔ)句應(yīng)用,$ cat exam10 echo -n key in a number (1-10 ) : #提示輸入1-10之間的一個(gè)數(shù)字,光標(biāo)不換行 read a #讀取輸入的數(shù)字 if $a -lt 1 -o $a -gt 10 #如果該數(shù)小于1或者大于10 t
23、hen echo Error Number . #顯示輸入數(shù)字有錯(cuò) exit 2 #退出,返回碼為2 elif ! $a -lt 5 #否則,若該數(shù)不小于5 then echo Its not less 5. #顯示不小于5 的信息 else echo Its less 5. #否則,顯示該數(shù)小于5 fi #結(jié)束if語(yǔ)句 echo accept key in value. #顯示接受了鍵入的值,動(dòng)手小練習(xí),提示用戶輸入一個(gè)數(shù),判斷這個(gè)數(shù)是否是你想要的。想要的就打出 yes,否則就是no。 提示用戶輸入一個(gè)文件/目錄,判斷這個(gè)文件具有哪些屬性? 寫一個(gè)輸入新的文件名,就自動(dòng)創(chuàng)建C源文件的腳本程序
24、,Shell分支判斷:case,分支判斷 用*代表所有其他值 case $變量名稱 in “第一個(gè)變量的內(nèi)容”) 動(dòng)作1 ; “第二個(gè)變量?jī)?nèi)容”) 動(dòng)作2 ; *) 動(dòng)作3 ; esac,#!/bin/bash if $# != 1 ; then echo usage: command number exit 1; fi case $1 in 2) echo you input number 2 ; 4) echo you input number 4 ; 6) echo you input number 6 ; *) echo invalid input esac,動(dòng)手練習(xí),提示用戶輸入一字
25、符串,字符串必須為 “case”或者”esac” ,并打印出來(lái)。如果輸入的是其他字符串打印出錯(cuò)消息。,Shell循環(huán):for,For循環(huán)三種方式: 1、像C語(yǔ)言一樣使用,適合數(shù)值運(yùn)算 for(語(yǔ)句;條件;語(yǔ)句) do 動(dòng)作 done 2、for 變量名 in 變量值1 變量值2 do 動(dòng)作 done 3、for 變量名 in $var do 動(dòng)作 done,#!/bin/bash if $# != 1 ;then echo usage: $0 loop_number exit 1 fi sum=0 for(i=0;i$1;i+) do sum=$($sum+$i) done echo “sum
26、 is $sum”,sum=0 for i in abc def mnq do echo $i done,For循環(huán)小練習(xí),系統(tǒng)上面的各種賬號(hào)都是寫在/etc/passwd 內(nèi)的第一個(gè)字段,你能不能通過(guò)命令cut找出每個(gè)賬號(hào)的名稱,用命令id、finger 輸出他們的相關(guān)信息呢? 請(qǐng)寫一個(gè)程序?qū)?etc/passwd 的賬號(hào)取出,而且每一個(gè)賬號(hào)都以一行字符串The 1 account is “root” 來(lái)顯示,那個(gè) 1 表示行數(shù),雙引號(hào)里是賬號(hào)名。 若想讓用戶輸入一個(gè)目錄名, 然后我找出該目錄內(nèi)的每個(gè)文件的讀寫執(zhí)行權(quán)限,該如何做? 讓用戶輸入一個(gè)大于0的數(shù)字,程序可以由 1+2+3. 一直累
27、加到用戶輸入的數(shù)字為止,輸出結(jié)果。 輸出命令行參數(shù),每行列出一個(gè)參數(shù)。演示$*和$的區(qū)別,Shell循環(huán):while,一、 while 表達(dá)式 do 動(dòng)作 done 二、 until 表達(dá)式 do 動(dòng)作 done,下面是計(jì)算1到loop的和 #!/bin/bash if $# != 1 ;then echo input number exit 1 fi sum=0; loop=$1 while $loop -gt 0 do sum=$($sum+$loop) loop=$($loop-1) done echo sum is $sum,until $a = 0 do echo $a; a=$($
28、a-1); done,break/continue,Break n 跳出最近的n重循環(huán),默認(rèn)跳出最近的一重循環(huán) continue 繼續(xù)循環(huán) 練習(xí): 寫一個(gè)腳本,輸出所有的命令行參數(shù)。要求:每行輸出一個(gè)參數(shù),分別用for和while實(shí)現(xiàn)。 幫用戶找到/usr/目錄下文件名以.d為后綴的文件,并將這些文件都拷貝到目標(biāo)目錄下。若找到的文件本身為目錄,則不拷貝。,腳本調(diào)試,bash -nvx script 參數(shù)說(shuō)明 -n 不執(zhí)行腳本,只檢查腳本的語(yǔ)法,若沒(méi)有語(yǔ)法錯(cuò)誤,則不會(huì)顯示任何信息 -v 執(zhí)行腳本前,把每行腳本都輸入到屏幕 -x 執(zhí)行腳本,顯示腳本每一行腳本的執(zhí)行情況。這是非常有用的參數(shù)。,She
29、ll函數(shù),shell腳本可以定義函數(shù),將一些命令放在一個(gè)函數(shù)內(nèi),調(diào) 用函數(shù)名即可執(zhí)行函數(shù)內(nèi)的語(yǔ)句了。類似于C語(yǔ)言函數(shù)。 函數(shù)若沒(méi)有被調(diào)用,則不會(huì)執(zhí)行 函數(shù)也有內(nèi)置變量。在函數(shù)內(nèi)部,$1,$2.和$ $#對(duì)應(yīng)函數(shù)傳入的形參。可以在函數(shù)內(nèi)用return表明函數(shù)的執(zhí)行結(jié)束。 語(yǔ)法 函數(shù)名() . return 數(shù)字 return的返回碼也可以通過(guò)echo $?獲得。 函數(shù)定義好以后,就可以在腳本需要的地方像命令一樣使用: 函數(shù)名 參數(shù) .,#!/bin/bash function_one() echo function one is called function_two() echo function two is called if $1 -eq 1 ;then function_one elif $1 -eq 2 ;then function_two else echo function doesnt exist! fi,shell函數(shù)范例,寫一個(gè)腳本ar.sh,跟據(jù)用戶的要求,求兩個(gè)數(shù)的算術(shù)運(yùn)算。 下面是這個(gè)腳本的開(kāi)頭,請(qǐng)寫完這個(gè)腳本。,#!/bin/b
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國(guó)面包刷市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)鋁鈦合金地拖市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)遠(yuǎn)距離一體紅外夜視彩色攝像機(jī)市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)網(wǎng)式載物臺(tái)車市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)硝制毛皮市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)電動(dòng)式管子坡口機(jī)市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)灌裝加塞機(jī)市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)汽車消聲器芯市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)桿諾市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)異形五金彈片市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 《國(guó)有企業(yè)招投標(biāo)及采購(gòu)管理辦法》
- GB/T 16451-2008天然脂肪醇
- GB 5013.2-1997額定電壓450/750V及以下橡皮絕緣電纜第2部分:試驗(yàn)方法
- 普通高中物理課程標(biāo)準(zhǔn)
- 國(guó)家開(kāi)放大學(xué)《監(jiān)督學(xué)》形考任務(wù)( 1-4)試題和答案解析
- 完工付款最終付款申請(qǐng)表
- 人工動(dòng)靜脈內(nèi)瘺
- 新版(七步法案例)PFMEA
- 慢阻肺隨訪記錄表正式版
- 廣西大學(xué)數(shù)學(xué)建模競(jìng)賽選拔賽題目
- 受戒申請(qǐng)表(共3頁(yè))
評(píng)論
0/150
提交評(píng)論