Shell 使用Shell變量

2021-08-30 18:28 更新

變量是一個(gè)字符串,我們分配一個(gè)值。分配的值可以是一個(gè)數(shù)字,文本,文件名,設(shè)備,或任何其他類型的數(shù)據(jù)。

變量是沒有超過實(shí)際數(shù)據(jù)的指針。 shell,可以創(chuàng)建,分配和刪除變量。

變量名:

變量的名稱可以包含只有字母(a到z或A到Z),數(shù)字(0?9)或下劃線(_)。

按照慣例,UNIX的shell變量將有自己的名稱以大寫字母。

下面的例子是有效的變量名:

_ALI
TOKEN_A
VAR_1
VAR_2

以下是無效的變量名的例子:

2_VAR
-VARIABLE
VAR1-VAR2
VAR_A!

不能使用其他字符,如!,*或 - 這些字符有特殊含義。

定義變量:

變量定義如下:

variable_name=variable_value

例如:

NAME="Zara Ali"

上面的例子中定義的變量名和分配值“Zara Ali”。這種類型的變量被稱為標(biāo)量變量。一個(gè)標(biāo)量變量只能容納一個(gè)值一次。

shell可以存儲(chǔ)任何你想在一個(gè)變量的值。例如:

VAR1="Zara Ali"
VAR2=100

訪問值:

為了訪問存儲(chǔ)在一個(gè)變量的值,它的名字的前綴為美元符號($):

例如,下面的腳本將訪問的價(jià)值定義的變量名,將它打印在標(biāo)準(zhǔn)輸出:

#!/bin/sh

NAME="Zara Ali"
echo $NAME

這將產(chǎn)生以下值:

Zara Ali

只讀變量:

shell提供了一種標(biāo)記為只讀變量使用的只讀命令。后一個(gè)變量被標(biāo)記為只讀的,它的值不能被改變。

例如,下面的腳本將給出錯(cuò)誤提示,同時(shí)試圖改變NAME的值: 

#!/bin/sh

NAME="Zara Ali"
readonly NAME
NAME="Qadiri"

這個(gè)結(jié)果將產(chǎn)生以下如下:

/bin/sh: NAME: This variable is read only.

取消設(shè)置變量:

注銷或刪除的變量告訴shell刪除的變量的變量列表做了跟蹤。一旦您取消設(shè)置變量,你不可以訪問存儲(chǔ)在變量值。

以下是使用unset命令定義一個(gè)變量的語法:

unset variable_name

上面的命令將取消設(shè)置定義的變量值。下面是一個(gè)簡單的例子:

#!/bin/sh

NAME="Zara Ali"
unset NAME
echo $NAME

上面的例子會(huì)不會(huì)打印出任何東西。不能使用unset命令取消定義的變量沒有被標(biāo)記為只讀。

變量類型:

當(dāng)一個(gè)shell運(yùn)行,存在三種主要類型的變量:

  • 局部變量: 局部變量是一個(gè)變量所做的是在當(dāng)前實(shí)例中的shell。這不是程序由shell開始。在命令提示符下設(shè)置。
  • 環(huán)境變量: 環(huán)境變量是一個(gè)變量所做的是任何子進(jìn)程的shell。有些程序需要以正常的環(huán)境變量。通常一個(gè)shell腳本定義,只有那些環(huán)境變量所需要的程序沒有運(yùn)行。
  • Shell 變量: shell變量是一個(gè)特殊的變量,由shell設(shè)置,也是shell正常需要。一些合成變量環(huán)境變量,而其他局部變量。

 



以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號