天天看點

【Shell 程式設計基礎第一部分】Shell腳本HelloShell及簡單的Shell基礎

對于Shell腳本的編寫,可以使用任何文本編輯器,利用常用的文本編輯器、UltraEdit、Editplus、Gedit等都可以!

對于Shell腳本的書寫,約定俗成,第一行必須如下所示:(務必放在檔案的第一行)

#!/bin/sh...

符号#!用來告訴系統執行該腳本的程式,這裡使用/bin/sh。編輯結束并儲存;這裡最好使用“!/bin/bash”而不是“!/bin/sh”,如果使用tc shell改為tcsh,其他類似。

如果要執行該腳本,必須先使用chmod指令打開腳本的執行權限,如下:

chmod +x yourScriptName

注釋:    在進行shell程式設計時,以 # 開頭的句子表示注釋;

      變量:    在其他程式設計語言中你必須使用變量。在shell程式設計中,所有的變量都由字元串組成,并且大家不需要對變量進行聲明;當你要指派給一個變量,首先熟悉如下知識;

1.需要給變量指派時,可以這麼寫:   變量名=值 

1-1.  首個字元必須為字母(a-z,A-Z)

1-2 中間不能有空格,可以使用下劃線(_)

1-3 不能使用标點符号

1-4 不能使用bash裡的關鍵字(可用help指令檢視保留關鍵字)

           2. 要取用一個變量的值,隻需在變量名前面加一個$ ( 注意: 給變量指派的時候,不能在”=”兩邊留白格 )

3.  echo 輸出(列印)

OK,書寫第一個完整Shell腳本:

#!/bin/sh 

#對變量指派: 

himi="HelloShell"  #等号兩邊均不能有空格存在 

# 現在列印變量a的内容: 

echo "A is:" 

echo $himi 

OK,終端指令&輸出如下:

Last login: Sat Apr 14 14:16:13 on ttys000

mac:~ Himi$ cd /Users/Himi/Desktop/

mac:Desktop Himi$ chmod +x himi

mac:Desktop Himi$ ./himi

A is:

HelloShell

mac:Desktop Himi$

需要大家注意的是有時候變量名可能會和其它文字混淆,比如: 

#!/bin/sh

#對變量指派:

himi=”test” #等号兩邊均不能有空格存在

echo $himi

echo $himi A

echo “A $himi”

#注意混淆

echo “A $himi_OK”

#正确寫法:

echo “A ${himi}_OK”

終端執行&列印:

mac:Desktop Himi$ ./himi 

test 

test A 

A test 

A test_OK 

mac:Desktop Himi$ 

童鞋們可以看到《 echo “A $himi_OK” 》這裡沒有正常列印出來,這是由于shell會去搜尋變量himi_OK的值,而實際上這個變量此時并沒有值。這時,我們可以用花括号來告訴shell要列印的是himi變量;

還需要注意shell的預設指派是字元串指派。比如:

#字元串指派: 

_int=19 

_tot=$_int+89 

echo $_tot 

列印的_tot不是108 !而是 19+89 !出現此的原因就是因為Shell預設是字元串指派,應該需要計算應該先熟悉如下幾個知識:

let   表示數學運算

    $[]   表示将中括号内的表達式作為數學運算先計算結果再輸出。

expr   用于整數值運算,每一項用空格隔開

上面前兩種方式在bash下有效,在sh下會出錯。

OK,知道這些就可以重新将剛才的腳本改寫成如下形式:

_tot=$[$_int+89] 

3種形式輸出的結果都是 108 ;

将到這裡就不得不說下Shell的算術運算仂,對于Shell種的運算中,大家需要知道:

C shell隻支援整數的運算;

運算符如下圖所示:

<a href="http://www.himigame.com/wp-content/uploads/2012/04/12d.jpeg"></a>

簡單寫幾個運算:

<a href="http://www.himigame.com/wp-content/uploads/2012/04/321.png"></a>

注意:

1.運算符兩側都必須有空格!!

2.C shell不支援浮點運算符(ps.如果您想要執行更加複雜的數學運算,可用UNIX的實用程式bc和nawk)

本文轉自 xiaominghimi 51CTO部落格,原文連結:http://blog.51cto.com/xiaominghimi/908874,如需轉載請自行聯系原作者