我們可以使用任意一種文字編輯器,比如gedit、kedit、emacs、vi等來編寫shell指令碼,它必須以如下行開始(必須放在檔案的第一行):
#!/bin/sh
...
注意:最好使用「!/bin/bash」而不是「!/bin/sh」,如果使用tc shell改為tcsh,其他類似。
chmod +x filename
此後在該指令碼所在目錄下,輸入 ./filename 即可執行該指令碼。
shell程式設計中,使用變數無需事先宣告,同時變數名的命名須遵循如下規則:
首個字元必須為字母(a-z,a-z)
中間不能有空格,可以使用下劃線(_)
不能使用標點符號
不能使用bash裡的關鍵字(可用help命令檢視保留關鍵字)
需要給變數賦值時,可以這麼寫:
變數名=值
要取用乙個變數的值,只需在變數名前面加乙個$ ( 注意: 給變數賦值的時候,不能在"="兩邊留空格 )
#!/bin/sh
# 對變數賦值:
a="hello world"
#等號兩邊均不能有空格存在
# 列印變數a的值:
echo "a is:" $a
a is: hello world
有時候變數名可能會和其它文字混淆,比如:
num=2
echo "this is the $numnd"
上述指令碼並不會輸出"this is the 2nd"而是"this is the ";這是由於shell會去搜尋變數numnd的值,而實際上這個變數此時並沒有值。這時,我們可以用花括號來告訴shell要列印的是num變數:
num=2
echo "this is the $nd"
其輸出結果為:this is the 2nd
注意花括號的位置:
num=2
echo "this is the nd"
其輸出結果為:this is the nd
需要注意shell的預設賦值是字串賦值。比如:
var=1
var=$var+1
echo $var
列印出來的不是2而是1+1。為了達到我們想要的效果有以下幾種表達方式:
let "var+=1"
var=$[$var+1]
var=`expr $var + 1`#注意加號兩邊的空格,否則還是按照字串的方式賦值。
注意:前兩種方式在bash下有效,在sh下會出錯。
let表示數**算,expr用於整數值運算,每一項用空格隔開,$將中括號內的表示式作為數**算先計算結果再輸出。
shell指令碼中有許多變數是系統自動設定的,我們將在用到這些變數時再作說明。除了只在指令碼內有效的普通shell變數外,還有環境變數,即那些由export關鍵字處理過的變數
Linux Shell程式設計 變數
變數即在程式執行過程中他的值是允許改變的量 變數是用一串固定的字元來表示不固定的值的一種方法 變數是一種使用方便的佔位符,用於引用計算機記憶體位址,該位址可以儲存 script 執行的時可更改的程式資訊 在 shell 中變數是不可能永久儲存在系統中的,必須在檔案中宣告 1.環境級變數 只在當前的s...
Linux shell程式設計 變數
bash主要的變數型別有 使用者自定義變數 環境變數 位置引數變數 預定義變數 1.使用者自定義變數 linux中預設的變數都是字串型 注意 變數賦值時,前後不能有空格 root hadoop200 x 1 root hadoop200 y 2 root hadoop200 echo x y 1 2...
Linux Shell程式設計的特殊變數
特殊變數 0 正在被執行命令的名字。對於shell指令碼而言,這是被啟用命令的路徑 n 該變數與指令碼被啟用時所帶的引數相對應。n是正整數,與引數位置相對應 1,2.提供指令碼的引數號 所有這些引數都被雙引號引住。若乙個指令碼接收兩個引數,等於 1 2 所有這些引數都分別被雙引號引住。若乙個指令碼接...