shell中的變數

2021-10-12 05:27:40 字數 2859 閱讀 3053

參考:菜鳥教程、linux中編寫shell指令碼、linux 的基本操作(編寫shell 指令碼)

定義變數,變數名和等號之間不能有空格。

your_name=

"runoob.com"

使用變數,需要加美元符號,變數與美元符號之間最好加{};但賦值不需要加美元符號。

your_name=

"tom"

echo

$ your_name=

"alibaba"

可以使用readonly修飾變數,使其變為唯讀變數。

#!/bin/bash

myurl=

""readonly myurl

可以使用unset刪除變數,變數被刪除後不能再次使用,且該命令不能刪除唯讀變數。

#!/bin/sh

myurl=

""unset myurl

變數分類:

1) 區域性變數:區域性變數在指令碼或命令中定義,僅在當前shell例項中有效,其他shell啟動的程式不能訪問區域性變數。

2) 環境變數:所有的程式,包括shell啟動的程式,都能訪問環境變數,有些程式需要環境變數來保證其正常執行。必要的時候shell指令碼也可以定義環境變數。

3) shell變數:shell變數是由shell程式設定的特殊變數。shell變數中有一部分是環境變數,有一部分是區域性變數,這些變數保證了shell的正常執行

字串是shell程式設計中最常用最有用的資料型別(除了數字和字串,也沒其它型別好用了),字串可以用單引號,也可以用雙引號,也可以不用引號。

單引號字串的限制:單引號裡的任何字元都會原樣輸出,單引號字串中的變數是無效的;單引號字串中不能出現單獨乙個的單引號(對單引號使用轉義符後也不行),但可成對出現,作為字串拼接使用。

雙引號的優點:雙引號裡可以有變數、雙引號裡可以出現轉義字元。

your_name=

'runoob'

str=

"hello, i know you are \"$your_name\"! \n"

echo -e $str

#輸出為:hello, i know you are "runoob"!

拼接字串:

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

#輸出為:

#hello, runoob ! hello, runoob !

#hello, runoob ! hello, $ !

獲取字串長度:

string=

"abcd"

echo

$#輸出 4

擷取字串,字串從0開始計數:

string=

"runoob is a great site"

echo

$# 輸出 unoo

查詢字串 i 或 o,哪個字母先出現就計算哪個。注意: 指令碼中 ` 是反引號,而不是單引號 ',不要看錯了哦。

string=

"runoob is a great site"

echo

`expr index "$string" io`

# 輸出 4

定義陣列:bash支援一維陣列(不支援多維陣列),並且沒有限定陣列的大小,下標從0開始。

#標準格式:陣列名=(值1 值2 ... 值n)

array_name=

(value0 value1 value2 value3)

#單獨定義陣列的各個分量:可以不使用連續的下標,而且下標的範圍沒有限制。

array_name[0]

=value0

array_name[1]

=value1

array_name[n]

=valuen

讀取陣列

#標準格式:$

valuen=

$#使用 @ 符號可以獲取陣列中的所有元素

echo

$

獲得陣列長度

# 取得陣列元素的個數

length=

$# 或者

length=

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

lengthn=

$

注釋: 以 # 開頭的行就是注釋,會被直譯器忽略。還支援多行注釋

# 這是乙個注釋

:<<

! 注釋內容...

注釋內容...

注釋內容...

!#或 :<<

' 注釋內容...

注釋內容...

注釋內容...

'

shell中的變數

只寫了部分常用變數 2018.5.14 環境變數 隨不同環境變化 user pwd path pid root 下 user root quguanwen下 user quguanwen 預定義變數 命令返回值檢視狀態 列出所有位置變數的值 一共載入多少位置變數 位置變數 1 2 3 x 執行指令碼...

shell中的變數

echo 123 passwd stdin yee 一次性給使用者加密碼 變數的定義 變數即在程式執行過程中它的值是允許改變的量 變數是用一串固定的字元來標示不固定的值的一種方法 變數是一種使用方便的佔位符,用於引用計算機記憶體位址,該地 址可以儲存 script 執行時可更改的程式資訊 在 she...

shell中的變數

變數名的規範 字元的轉譯及變數的宣告 變數值的傳遞 read 命令的別名 用命令結果做變數 函式變數與環境 etc bashrc shell的配置環境 etc profile 使用者環境 env 檢視環境中所有變數變數即在程式執行過程中它的值是允許改變的量 變數是用一串固定的字元來標示不固定的值的一...