Shell是什麼?
Shell 提示符:
提示符下這就是所謂的命令提示符下$,發出shell。雖然會顯示提示,您可以鍵入一個命令。
shell讀取輸入後按Enter鍵。它決定了想要的命令和執行輸入的第一個字符。一個字是一個完整的字符集。空格和製表符分隔單詞。
以下是一個簡單的例子date命令顯示當前日期和時間:
$date Thu Jun 25 08:30:19 MST 2009
你可以定製你的命令提示符下使用環境變量PS1環境教學解釋。
Shell 類型:
在UNIX係統下有兩種主要類型的shell:
-
Bourne shell. 如果您使用的是Bourne類型的shell,默認提示符為$字符。
-
C shell.如果您使用的是C型的shell,默認的提示字符%。
再還有各種Bourne shell的子類彆列示如下:
-
Bourne shell ( sh)
-
Korn shell ( ksh)
-
Bourne Again shell ( bash)
-
POSIX shell ( sh)
不同的C型shell如下:
-
C shell ( csh)
-
TENEX/TOPS C shell ( tcsh)
原來的UNIX shell寫於20世紀70年代中期,由斯蒂芬·伯恩,在新澤西AT&T貝爾實驗室。
Bourne shell 是第一個shell 出現在UNIX係統上,因此,它被稱為 "the shell".
Bourne shell的安裝通常為 /bin/sh 在大多數UNIX版本。出於這個原因,它是編寫腳本使用在幾個不同的版本的UNIX shell。
在本教學中,我們將要覆蓋大多數基於傳播Borne Shell概念。
Shell 腳本:
shell腳本的基本概念是一個命令列表中列出的順序執行。 #是shell腳本注釋前麵一英鎊符號。
條件測試,如值A大於B值,循環我們去通過大量的數據,讀取和存儲數據的文件和變量的讀取和存儲數據,該腳本可能包含的功能。
shell腳本和函數都解釋。這意味著他們不會被編譯。
我們將在接下來的幾個教學寫了許多腳本。這將是一個簡單的文本文件,在其中,我們會把我們所有的命令和其他一些必要的結構,告訴shell環境做什麼,什麼時候做。
示例腳本:
假設我們創建了一個test.sh腳本。注意:所有的腳本 .sh擴展。添加任何東西到腳本,需要提醒係統正在啟動一個shell腳本。例如:
#!/bin/sh
這是告訴係統Bourne shell的執行下麵的命令。這就是所謂的家shebang ,因為“#”符號被稱為哈希,和!符號被稱為bang。
要創建一個包含這些命令的腳本,把shebang行第一,然後添加命令:
#!/bin/bash pwd ls
Shell 注釋:
你可以把注釋,在你的腳本如下:
#!/bin/bash # Author : Zara Ali # Copyright (c) Tutorialsgitbook.net # Script follows here: pwd ls
現在保存上麵的內容,使此腳本可執行如下:
$chmod +x test.sh
現在,你的shell腳本,可隨時執行如下:
$./test.sh
This would produce following result:
/home/amrood index.htm unix-basic_utilities.htm unix-directories.htm test.sh unix-communication.htm unix-environment.htm
注:要執行任何程序在當前目錄中,執行可使用 ./program_name
擴展Shell腳本:
Shell腳本有幾個必要的結構告訴shell環境做什麼,什麼時候做。當然,大多數腳本是比上述更加複雜。
shell畢竟,真正的編程語言,完成變量,控製結構,等等。無論腳本變得多麼複雜,但是,它仍然是順序執行的命令的列表。
下麵的腳本使用讀命令從鍵盤輸入,並將其分配給變量PERSON的值,並最終打印在stdout。
#!/bin/sh # Author : Zara Ali # Copyright (c) Tutorialsgitbook.net # Script follows here: echo "What is your name?" read PERSON echo "Hello, $PERSON"
下麵是運行的腳本示例:
$./test.sh What is your name? Zara Ali Hello, Zara Ali $