打開文本編輯器遵馆,新建一個(gè)文件,擴(kuò)展名為sh(sh代表shell)丰榴,擴(kuò)展名并不影響腳本執(zhí)行货邓,見名知意就好,如果你用php寫shell 腳本四濒,擴(kuò)展名就用php好了换况。
輸入一些代碼:
“#!” 是一個(gè)約定的標(biāo)記,它告訴系統(tǒng)這個(gè)腳本需要什么解釋器來執(zhí)行盗蟆,即使用哪一種Shell戈二。echo命令用于向窗口輸出文本。
運(yùn)行Shell腳本通常有兩種方法喳资,其實(shí)還有其他的方法觉吭,暫不介紹。
作為可執(zhí)行程序
將上面的代碼保存為firstshell.sh仆邓,并 cd 到相應(yīng)目錄:
注意鲜滩,一定要寫成./firstshell.sh,而不是firstshell.sh节值。運(yùn)行其它二進(jìn)制的程序也一樣绒北,直接寫firstshell.sh,linux系統(tǒng)會(huì)去PATH里尋找有沒有叫firstshell.sh的察署,而只有/bin, /sbin, /usr/bin,/usr/sbin等在PATH里峻汉,你的當(dāng)前目錄通常不在PATH里贴汪,所以寫成firstshell.sh是會(huì)找不到命令的,要用./firstshell.sh告訴系統(tǒng)說休吠,就在當(dāng)前目錄找扳埂。
通過這種方式運(yùn)行bash腳本,第一行一定要寫對瘤礁,好讓系統(tǒng)查找到正確的解釋器阳懂。
這里的"系統(tǒng)",其實(shí)就是shell這個(gè)應(yīng)用程序(想象一下Windows Explorer)柜思,但我故意寫成系統(tǒng)岩调,是方便理解,既然這個(gè)系統(tǒng)就是指shell赡盘,那么一個(gè)使用/bin/sh作為解釋器的腳本是不是可以省去第一行呢号枕?是的。
作為解釋器參數(shù)
這種運(yùn)行方式是陨享,直接運(yùn)行解釋器葱淳,其參數(shù)就是shell腳本的文件名钝腺,如:
這種方式運(yùn)行的腳本,不需要在第一行指定解釋器信息赞厕,寫了也沒用艳狐。
再看一個(gè)例子。下面的腳本使用read命令從 stdin 獲取輸入并賦值給?PERSON 變量皿桑,最后在 stdout 上輸出:
運(yùn)行腳本毫目,結(jié)果如下: