鍍金池/ 教程/ Linux/ Shell是什么?
Shell 輸入/輸出重定向
Shell 循環(huán)類型
Shell是什么?
Shell 特殊變量
Shell 算術(shù)運(yùn)算符示例
Shell 關(guān)系運(yùn)算符示例
Shell 替代
Shell 函數(shù)
Shell 條件語句
Shell 聯(lián)機(jī)幫助
Shell 數(shù)組/Arrays
Shell 布爾運(yùn)算符范例
Shell
Shell if...elif...fi 語句
Shell case...esac 語句
Shell 使用Shell變量
Shell 文件測(cè)試符例子
Shell 基本運(yùn)算符
Korn Shell 運(yùn)算符
Shell 字符串運(yùn)算范例
Shell while 循環(huán)
Shell 引用機(jī)制
Shell if...else...fi 語句
Shell select 循環(huán)
C Shell運(yùn)算符
Shell 循環(huán)控制break/continue
Shell for循環(huán)
Shell until 循環(huán)
Shell if...fi語句

Shell是什么?

shell為您提供了對(duì)UNIX系統(tǒng)的接口。向你收集的輸入,并根據(jù)輸入執(zhí)行程序。當(dāng)一個(gè)程序執(zhí)行完畢后,它會(huì)顯示該程序的輸出。
shell是一個(gè)環(huán)境,我們可以運(yùn)行我們的命令,程序和shell腳本。shell有不同的風(fēng)格,就像有不同風(fēng)格的操作系統(tǒng)。每個(gè)的shell的風(fēng)格,有它自己的一套識(shí)別的命令和功能。

Shell 提示符:

提示符下這就是所謂的命令提示符下$,發(fā)出shell。雖然會(huì)顯示提示,您可以鍵入一個(gè)命令。

shell讀取輸入后按Enter鍵。它決定了想要的命令和執(zhí)行輸入的第一個(gè)字符。一個(gè)字是一個(gè)完整的字符集??崭窈椭票矸指魡卧~。

以下是一個(gè)簡單的例子date命令顯示當(dāng)前日期和時(shí)間:

$date
Thu Jun 25 08:30:19 MST 2009

你可以定制你的命令提示符下使用環(huán)境變量PS1環(huán)境教程解釋。

Shell 類型:

在UNIX系統(tǒng)下有兩種主要類型的shell:

  1. Bourne shell. 如果您使用的是Bourne類型的shell,默認(rèn)提示符為$字符。

  2. C shell.如果您使用的是C型的shell,默認(rèn)的提示字符%。

再還有各種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世紀(jì)70年代中期,由斯蒂芬·伯恩,在新澤西AT&T貝爾實(shí)驗(yàn)室。

Bourne shell 是第一個(gè)shell 出現(xiàn)在UNIX系統(tǒng)上,因此,它被稱為 "the shell".

Bourne shell的安裝通常為 /bin/sh 在大多數(shù)UNIX版本。出于這個(gè)原因,它是編寫腳本使用在幾個(gè)不同的版本的UNIX shell。

在本教程中,我們將要覆蓋大多數(shù)基于傳播Borne Shell概念。

Shell 腳本:

shell腳本的基本概念是一個(gè)命令列表中列出的順序執(zhí)行。 #是shell腳本注釋前面一英鎊符號(hào)。

條件測(cè)試,如值A(chǔ)大于B值,循環(huán)我們?nèi)ネㄟ^大量的數(shù)據(jù),讀取和存儲(chǔ)數(shù)據(jù)的文件和變量的讀取和存儲(chǔ)數(shù)據(jù),該腳本可能包含的功能。

shell腳本和函數(shù)都解釋。這意味著他們不會(huì)被編譯。

我們將在接下來的幾個(gè)教程寫了許多腳本。這將是一個(gè)簡單的文本文件,在其中,我們會(huì)把我們所有的命令和其他一些必要的結(jié)構(gòu),告訴shell環(huán)境做什么,什么時(shí)候做。

示例腳本:

假設(shè)我們創(chuàng)建了一個(gè)test.sh腳本。注意:所有的腳本 .sh擴(kuò)展。添加任何東西到腳本,需要提醒系統(tǒng)正在啟動(dòng)一個(gè)shell腳本。例如:

#!/bin/sh

這是告訴系統(tǒng)Bourne shell的執(zhí)行下面的命令。這就是所謂的家shebang ,因?yàn)?ldquo;#”符號(hào)被稱為哈希,和!符號(hào)被稱為bang。

要?jiǎng)?chuàng)建一個(gè)包含這些命令的腳本,把shebang行第一,然后添加命令:

#!/bin/bash
pwd
ls

Shell 注釋:

你可以把注釋,在你的腳本如下:

#!/bin/bash

# Author : Zara Ali
# Copyright (c) Tutorialsyiibai.com
# Script follows here:
pwd
ls

現(xiàn)在保存上面的內(nèi)容,使此腳本可執(zhí)行如下:

$chmod +x test.sh

現(xiàn)在,你的shell腳本,可隨時(shí)執(zhí)行如下:

$./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

注:要執(zhí)行任何程序在當(dāng)前目錄中,執(zhí)行可使用 ./program_name

擴(kuò)展Shell腳本:

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) Tutorialsyiibai.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
$