shell學習筆記 (1)shell變數

2021-09-11 23:43:23 字數 2218 閱讀 5038

定義變數時,變數名不加美元符號,如:your_name="runoob.com"

注意,變數名和等號之間不能有空格,變數名的命名須遵循如下規則:

使用乙個定義過的變數,只要在變數名前面加美元符號即可,如:

your_name="qinjx"

echo $your_name

echo $

使用 readonly 命令可以將變數定義為唯讀變數,唯讀變數的值不能被改變。

下面的例子嘗試更改唯讀變數,結果報錯:

#!/bin/bash

myurl=""

readonly myurl

myurl=""

執行指令碼,結果如下:/bin/sh: name: this variable is read only.

執行shell時,會同時存在三種變數:

單引號字串的限制:

雙引號的優點:

your_name="runoob"

# 使用雙引號拼接

greeting="hello, "$your_name" !"

greeting_1="hello, $ !"

echo $greeting $greeting_1

# 使用單引號拼接

greeting_2='hello, '$your_name' !'

greeting_3='hello, $ !'

echo $greeting_2 $greeting_3

string="abcd"echo $ #輸出 4
以下例項從字串第2個字元開始擷取4個字元:

string="runoob is a great site"

echo $ # 輸出 unoo

查詢字元io的位置(哪個字母先出現就計算哪個):

string="runoob is a great site"

echo `expr index "$string" io` # 輸出 4

bash支援一維陣列(不支援多維陣列),並且沒有限定陣列的大小。陣列元素的下標由 0 開始編號。獲取陣列中的元素要利用下標,下標可以是整數或算術表示式,其值應大於或等於 0。

在 shell 中,用括號來表示陣列,陣列元素用"空格"符號分割開。定義陣列的一般形式為:

陣列名=(值1 值2 ... 值n)
例如:

array_name=(value0 value1 value2 value3)
或者

array_name=(

value0

value1

value2

value3

)

還可以單獨定義陣列的各個分量:

array_name[0]=value0

array_name[1]=value1

array_name[n]=valuen

可以不使用連續的下標,而且下標的範圍沒有限制。

讀取陣列元素值的一般格式是:

$
例如:

valuen=$
使用 @ 符號可以獲取陣列中的所有元素,例如:

echo $
獲取陣列長度的方法與獲取字串長度的方法相同,例如:

# 取得陣列元素的個數

length=$# 或者

length=$

# 取得陣列單個元素的長度

lengthn=$

以 # 開頭的行就是注釋,會被直譯器忽略。

多行注釋還可以使用以下格式:

::<<'

注釋內容...

注釋內容...

注釋內容...

':<注釋內容...

注釋內容...

注釋內容...

!

shell學習1 shell的簡單介紹

在linux unix作業系統中存在多種多型別的shell,而多數linux unix系統預設使用shell為bash。所謂shell,是一種直譯器,也是一種指令碼語言,在每個shell指令碼中都包含乙個或者多個命令。在電腦科學中,shell是指為使用者提供使用介面的軟體 命令直譯器 它接收來自使用...

Linux Shell筆記1 shell程式設計基礎

shell語言是解釋型非強型別語言.linux shell不區分變數的型別,一切都是字串型別,變數名不能是數字開頭.變數長度沒有限制,變數可以進行比較操作和整數操作.整數操作取決於字串的值是否是數字.變數的引用需要用 且 varname一般和 等效,但是注意有時變數可能會出現混淆的情況,此時應該用第...

shell指令碼學習1 shell介紹及變數

shell是什麼 根絕維基百科的定義。shell,一種殼層與命令列介面,是unix作業系統下傳統的使用者和計算機的互動介面,使用者直接輸入命令來執行各種各樣的任務。shell指令碼 英語 shell script 又稱shell命令稿 程式化指令碼,是一種電腦程式使用的文字檔案,內容由一連串的she...