Linux Shell程式設計變數賦值和引用

2021-06-28 03:05:54 字數 1481 閱讀 5472

我們可以使用任意一種文字編輯器,比如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 所有這些引數都分別被雙引號引住。若乙個指令碼接...