Linux 第三篇,shell,shell腳本,shell編程

一.shell的基本認識

shell 就是命令解析器,將用戶輸入的指令轉換爲相應的機器能夠運行的程序。

shell種類: Bourne Shell (sh)

                   Korn Shell (ksh)

                   Bourne Again Shell (bash)

                   C Shell (包括csh and tcsh)

                   TENEXITOPS C Shell (tcsh)

 

二.shell腳本

shell 腳本:是一種包含一系列命令序列的文本文件。當運行這個腳本文件時,文件中包含的命令序列將等到執行。

執行sh文件命令,常用的有兩種方式:sh hello.sh  或者 ./shello.sh

以上的執行,都是切換到sh腳本所在目錄的執行方式。如果不在sh腳本所在的目錄,但是擁有執行權限的話,可以使用指定路徑的方式執行。例如:/data/shell/hello.sh

 

shell腳本的編寫

語法

shell腳本的第一行必須是如下格式:#! /bin/sh

當編輯好腳本後,如果要執行該腳本,還必須要使其具有可執行屬性。

可執行屬性的設置命令:chmod +X filename

 

變量

shell編程中,所有變量都是由字符串組成,並不需要預先對變量進行聲明。

例:(斜體爲註解,實際腳本中不存在,不能寫)

#! /bin/sh

# set variable a    //該行爲註釋:設置一個變量a

a=hello world

# print a

echo A is :       //打印A is :並換行

echo $a           //使用變量a的值:hello world

 

有時候變量的使用很容易與其他文字混淆。

例如:num=2

           echo ”this is the $numnd”

輸出爲:this is the

原因:因爲在解析時,會把numnd 當成變量,而numnd不存在,爲空。

如改:num=2

           echo  ”this is the ${num}nd”

輸出爲:this is the 2nd  

 

默認變量

$# :傳入腳本的命令行參數個數

$* :所有命令參數值,在各個參數之間留有空格

$0 :命令本身(shell文件名)

$1 :第一個命令行參數

$2 :第二個命令行參數

……<依次類推>

例:test1.sh

#!/bin/sh

echo ”number of vars:”$#

echo ”number of vars:”$*

echo ”number of vars:”$1

echo ”number of vars:”$2

echo ”number of vars:”$3

echo ”number of vars:”$4

運行test1: ./test1.sh 1 2 3 4

結果會是多少呢?歡迎實驗。

 

局部變量

在變量首次被賦值時加上local關鍵字,可以申明一個局部變量。

例:test2.sh

#!/bin/bash

hello=”var1”

echo $hello

function func1{

    local hello=”var2”

    echo $hello

}

func1

echo $hello

運行test2.

輸出結果會是什麼呢?歡迎實驗。

 

本次的shell,基礎認知,就先寫到這裏。相信當你看到這的時候,對shell已經有了基本的印象。能閱讀簡單的shell腳本。再見。

下一篇:shell邏輯控制語法 https://blog.csdn.net/jiachanghui007/article/details/105776528

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章