更新時(shí)間:2022-07-27 11:16:16 來源:動(dòng)力節(jié)點(diǎn) 瀏覽843次
Shell為您提供到 Unix 系統(tǒng)的接口。它從您那里收集輸入并根據(jù)該輸入執(zhí)行程序。當(dāng)一個(gè)程序完成執(zhí)行時(shí),它會(huì)顯示該程序的輸出。
Shell 是一個(gè)環(huán)境,我們可以在其中運(yùn)行我們的命令、程序和 shell 腳本。shell 有不同的風(fēng)格,就像操作系統(tǒng)有不同的風(fēng)格一樣。每種 shell 風(fēng)格都有自己的一組公認(rèn)的命令和功能。
提示符$稱為命令提示符,由 shell 發(fā)出。顯示提示時(shí),您可以鍵入命令。
在您按下Enter后,Shell 會(huì)讀取您的輸入。它通過查看輸入的第一個(gè)單詞來確定要執(zhí)行的命令。一個(gè)詞是一組完整的字符。空格和制表符分隔單詞。
以下是date命令的一個(gè)簡(jiǎn)單示例,它顯示當(dāng)前日期和時(shí)間
$date
Thu Jun 25 08:30:19 MST 2009
您可以使用環(huán)境教程中解釋的環(huán)境變量 PS1 自定義命令提示符。
在 Unix 中,有兩種主要類型的 shell -
Bourne shell - 如果您使用的是 Bourne 類型的 shell,則$字符是默認(rèn)提示符。
C shell - 如果您使用的是 C 類型的 shell,則 % 字符是默認(rèn)提示符。
Bourne Shell 有以下子類別 :
伯恩殼 (sh)
Korn 殼 (ksh)
Bourne Again shell (bash)
POSIX 外殼 (sh)
不同的 C 型外殼如下 :
C 外殼 (csh)
TENEX/TOPS C 外殼 (tcsh)
最初的 Unix shell 是由 Stephen R. Bourne 在 1970 年代中期在新澤西州的 AT&T 貝爾實(shí)驗(yàn)室編寫的。
Bourne shell 是第一個(gè)出現(xiàn)在 Unix 系統(tǒng)上的 shell,因此被稱為“shell”。
在大多數(shù)版本的 Unix 上,Bourne shell 通常安裝為/bin/sh 。出于這個(gè)原因,它是編寫可在不同版本的 Unix 上使用的腳本的首選 shell。
shell 腳本的基本概念是一個(gè)命令列表,這些命令按執(zhí)行順序列出。一個(gè)好的 shell 腳本會(huì)有注釋,前面有#符號(hào),描述這些步驟。
有條件測(cè)試,比如值A(chǔ)大于值B,循環(huán)允許我們遍歷海量數(shù)據(jù),文件讀取和存儲(chǔ)數(shù)據(jù),變量讀取和存儲(chǔ)數(shù)據(jù),腳本可能包含函數(shù)。
我們將在接下來的部分中編寫許多腳本。這將是一個(gè)簡(jiǎn)單的文本文件,我們將在其中放置所有命令和幾個(gè)其他必需的構(gòu)造,這些構(gòu)造告訴 shell 環(huán)境要做什么以及何時(shí)執(zhí)行。
Shell 腳本和函數(shù)都被解釋。這意味著它們沒有被編譯。
假設(shè)我們創(chuàng)建了一個(gè)test.sh腳本。請(qǐng)注意,所有腳本都將具有.sh擴(kuò)展名。在向腳本添加任何其他內(nèi)容之前,您需要提醒系統(tǒng)正在啟動(dòng)一個(gè) shell 腳本。這是使用shebang構(gòu)造完成的。例如
#!/bin/sh
這告訴系統(tǒng)后面的命令將由 Bourne shell 執(zhí)行。之所以稱為 shebang,是因?yàn)?符號(hào)稱為哈希,而 ! 符號(hào)稱為 bang。
要?jiǎng)?chuàng)建包含這些命令的腳本,請(qǐng)先放置 shebang 行,然后添加命令
#!/bin/bash
pwd
ls
Shell 腳本有幾個(gè)必需的結(jié)構(gòu),它們告訴 shell 環(huán)境做什么和什么時(shí)候做。當(dāng)然,大多數(shù)腳本都比上述腳本更復(fù)雜。
畢竟,shell 是一種真正的編程語言,包含變量、控制結(jié)構(gòu)等。無論腳本變得多么復(fù)雜,它仍然只是順序執(zhí)行的命令列表。
以下腳本使用讀取命令從鍵盤獲取輸入并將其分配為變量 PERSON 的值,最后將其打印在 STDOUT 上。
#!/bin/sh
# Author : Zara Ali
# Copyright (c) Tutorialspoint.com
# Script follows here:
echo "What is your name?"
read PERSON
echo "Hello, $PERSON"
這是腳本的示例運(yùn)行
$./test.sh
What is your name?
Zara Ali
Hello, Zara Ali
$
以上就是關(guān)于“shell編程基礎(chǔ)教程”的介紹,大家如果想了解更多相關(guān)知識(shí),不妨來關(guān)注一下動(dòng)力節(jié)點(diǎn)的Java在線學(xué)習(xí),里面的課程內(nèi)容由淺到深,適合小白學(xué)習(xí),希望對(duì)大家能夠有所幫助。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743