Shell基礎書寫與概念

2021-06-07 08:40:44 字數 2839 閱讀 5792

對於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 $_ok」

終端執行&列印:

mac:desktop himi$ ./himi

test

testa

a test

a

a test_ok

mac:desktop himi$

童鞋們可以看到《 echo「a $himi_ok」 》這裡沒有正常列印出來,這是由於shell會去搜尋變數himi_ok的值,而實際上這個變數此時並沒有值。這時,我們可以用花括號來告訴shell要列印的是himi變數;

還需要注意

shell

的預設賦值是字串賦值。比如:

#!/bin/sh

#字串賦值:

_int=19

_tot=$_int+89

echo $_tot

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

let   表示數**算

$   表示將中括號內的表示式作為數**算先計算結果再輸出。

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

上面前兩種方式在

bash

下有效,在

sh下會出錯。

ok,知道這些就可以重新將剛才的指令碼改寫成如下形式:

#!/bin/sh

#字串賦值:

_int=19

_tot=$[$_int+89]

echo$_tot

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

c shell只支援整數的運算;

運算子如下圖所示:

簡單寫幾個運算:

注意:1.運算子兩側都必須有空格!!

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

shell教程(一) 基礎概念

一般命令列,指的是shell。shell是乙個程式,接受從鍵盤輸入的命令,然後把命令傳遞給作業系統去執行。這叫做 shell 提示符,無論何時當 shell 準備好了去接受輸入時,它就會出現。然而,它可能會以各種各樣的面孔顯示,這則取決於不同的 linux 發行版,它通常包括你的使用者名稱 主機名,...

Shell指令碼書寫總結

指令碼開頭必須有 bin sh 指令碼結束後用 chmod x filename 修改指令碼使用許可權 變數定義 變數名 值 在變數名之前加乙個 就可以取出變數值 bin sh 對變數賦值 a hello world 列印變數a的值 echo a is a num 2 echo this is th...

shell指令碼書寫規範

n年後的第一更,這裡主要記錄一些平時自己不太注意的點 usr bin env bash 2.一行 太長,需要用 進行分行,看起來更美觀 configure prefix usr sbin path usr sbin nginx conf path etc nginx nginx.conf 3.在指令...