中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

shell腳本

發布時間:2020-07-15 09:06:14 來源:網絡 閱讀:426 作者:yongguang1990 欄目:系統運維

shell為您提供了對UNIX系統的接口。向你收集的輸入,并根據輸入執行程序。當一個程序執行完畢后,它會顯示該程序的輸出。

shell是一個環境,我們可以運行我們的命令,程序和shell腳本。shell有不同的風格,就像有不同風格的操作系統。每個的shell的風格,有它自己的一套識別的命令和功能。

Shell 提示符:

提示符下這就是所謂的命令提示符下$,發出shell。雖然會顯示提示,您可以鍵入一個命令。

shell讀取輸入后按Enter鍵。它決定了想要的命令和執行輸入的第一個字符。一個字是一個完整的字符集。空格和制表符分隔單詞。

以下是一個簡單的例子date命令顯示當前日期和時間:

$dateThu Jun 25 08:30:19 MST 2009

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

Shell 類型:

在UNIX系統下有兩種主要類型的shell:

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

  2. 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/bashpwd
ls

Shell 注釋:

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

#!/bin/bash# Author : Zara Ali# Copyright (c) Tutorialspoint.com# 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) Tutorialspoint.com# Script follows here:echo "What is your name?"read PERSON
echo "Hello, $PERSON"

下面是運行的腳本示例:

$./test.shWhat is your name?Zara AliHello, Zara Ali$

shell變量

變量是一個字符串,我們分配一個值。分配的值可以是一個數字,文本,文件名,設備,或任何其他類型的數據。

變量是沒有超過實際數據的指針。 shell,可以創建,分配和刪除變量。

變量名:

變量的名稱可以包含只有字母(a到z或A到Z),數字(0~9)或下劃線(_)。

按照慣例,UNIX的shell變量將有自己的名稱以大寫字母。

下面的例子是有效的變量名:

_ALI
TOKEN_A
VAR_1
VAR_2

以下是無效的變量名的例子:

2_VAR-VARIABLE
VAR1-VAR2
VAR_A!

不能使用其他字符,如!,*或 - 這些字符有特殊含義。

定義變量:

變量定義如下:

variable_name=variable_value

例如:

NAME="Zara Ali"

上面的例子中定義的變量名和分配值“Zara Ali”。這種類型的變量被稱為標量變量。一個標量變量只能容納一個值一次。

shell可以存儲任何你想在一個變量的值。例如:

VAR1="Zara Ali"VAR2=100

訪問值:

為了訪問存儲在一個變量的值,它的名字的前綴為美元符號($):

例如,下面的腳本將訪問的價值定義的變量名,將它打印在標準輸出:

#!/bin/shNAME="Zara Ali"echo $NAME

這將產生以下值:

Zara Ali

只讀變量:

shell提供了一種標記為只讀變量使用的只讀命令。后一個變量被標記為只讀的,它的值不能被改變。

例如,下面的腳本將給出錯誤提示,同時試圖改變NAME的值: 

#!/bin/shNAME="Zara Ali"readonly NAME
NAME="Qadiri"

這個結果將產生以下如下:

/bin/sh: NAME: This variable is read only.

取消設置變量:

注銷或刪除的變量告訴shell刪除的變量的變量列表做了跟蹤。一旦您取消設置變量,你不可以訪問存儲在變量值。

以下是使用unset命令定義一個變量的語法:

unset variable_name

上面的命令將取消設置定義的變量值。下面是一個簡單的例子:

#!/bin/shNAME="Zara Ali"unset NAME
echo $NAME

上面的例子會不會打印出任何東西。不能使用unset命令取消定義的變量沒有被標記為只讀。

變量類型:

當一個shell運行,存在三種主要類型的變量:

  • 局部變量: 局部變量是一個變量所做的是在當前實例中的shell。這不是程序由shell開始。在命令提示符下設置。

  • 環境變量: 環境變量是一個變量所做的是任何子進程的shell。有些程序需要以正常的環境變量。通常一個shell腳本定義,只有那些環境變量所需要的程序沒有運行。

  • Shell 變量: shell變量是一個特殊的變量,由shell設置,也是shell正常需要。一些合成變量環境變量,而其他局部變量。



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

微博| 祁东县| 锡林郭勒盟| 宜君县| 白玉县| 微山县| 太谷县| 武陟县| 台东市| 松溪县| 镇巴县| 土默特左旗| 德保县| 府谷县| 广平县| 乌兰浩特市| 汶川县| 改则县| 志丹县| 新闻| 遵化市| 介休市| 淮南市| 上犹县| 社旗县| 诏安县| 酉阳| 江口县| 政和县| 伊通| 普安县| 汶上县| 司法| 资源县| 和龙市| 海兴县| 双桥区| 顺平县| 许昌市| 申扎县| 门头沟区|