加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專(zhuān)業(yè)用戶(hù)
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 1、變量名的定義
    • 2、變量的賦值
    • 3、變量的使用
    • 4、變量的修改
    • 5、變量的刪除
    • 6、將變量設(shè)置為只讀變量
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫(xiě)之變量

08/29 13:06
1542
閱讀需 4 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

變量是任何一種編程語(yǔ)言都必不可少的組成部分,變量用來(lái)存放各種數(shù)據(jù)。腳本語(yǔ)言在定義變量時(shí)通常不需要指明類(lèi)型,直接賦值就可以,Shell變量也遵循這個(gè)規(guī)則。每一個(gè)變量的值都是以字符串的形式存儲(chǔ)。

1、變量名的定義

變量名定義需要注意以下幾點(diǎn):

變量名由數(shù)字、字母、下劃線組成;

必須以字母或者下劃線開(kāi)頭;

不能使用Shell里的關(guān)鍵字(如,$,#,?等,通過(guò)help命令可以查看保留關(guān)鍵字)。

2、變量的賦值

賦值“=”左右不能有空格。

變量值可以加單引號(hào)、雙引號(hào)、或者不加引號(hào), 如果變量值包含了空格、或tab等空白符號(hào),那么就必須使用引號(hào)包圍起來(lái)。其中加單引號(hào)的變量值,輸出時(shí),直接將變量值當(dāng)做一串字符串輸出,不關(guān)心變量值中是否存在變量和命令。而加雙引號(hào)的變量值,輸出時(shí)會(huì)先解析里面的變量和命令,按照解析后的結(jié)果進(jìn)行輸出。

變量值可以是一個(gè)命令執(zhí)行的結(jié)果,使用反引號(hào)和$()的方式,可以將命令執(zhí)行結(jié)果賦值給變量。

3、變量的使用

使用一個(gè)定義過(guò)的變量,只要在變量名前面加美元符號(hào)$即可,變量名可以使用{ }包圍起來(lái),也可不使用{ }。

舉例說(shuō)明(為了方便,我們直接在shell環(huán)境終端進(jìn)行舉例演示變量的使用,不再寫(xiě)入腳本,其與在腳本中使用方法一致)。

1)變量值無(wú)空格

var=value

使用echo輸出變量var,echo $var或者echo ${var},如圖:

也可以加上單引號(hào)或者雙引號(hào):

var='value'或var="value":

2)變量值有空格

var='value 0'或var="value 0":

3)將命令執(zhí)行結(jié)果賦值給變量

首先建立一個(gè)test.txt文件,輸入內(nèi)容為“my test!!”:

使用反引號(hào)方式包括命令“cat test.txt”,將test.txt中內(nèi)容賦予變量var:

使用$()方式賦值給var:

4)變量中引用變量或者命令的情況

var0=123;

使用單引號(hào)定義var1的值:var1='var0 =${var0}';

使用雙引號(hào)定義var1的值:var2="var0 =${var0}";

看執(zhí)行結(jié)果:

可以看出var1的值直接當(dāng)做字符串輸出,而var2的值,經(jīng)過(guò)解析變量中的變量var0之后進(jìn)行才輸出。

4、變量的修改

變量的修改就比較簡(jiǎn)單了,直接給定義后的變量二次賦值就可以了。

5、變量的刪除

刪除一個(gè)定義過(guò)得變量,使用unset命令。

6、將變量設(shè)置為只讀變量

也可以將變量設(shè)置為只讀模式,不允許修改,使用readonly命令。設(shè)置為只讀變量后,不能用unset刪除變量。如果還是用該變量,需要重啟新的終端操作。

可以看到使用readonly命令之后,在此修改var變量,沒(méi)有修改成功。

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
AFBR-5803ATZ 1 Foxconn Transceiver, 1270nm Min, 1380nm Max, 125Mbps(Tx), 125Mbps(Rx), ST Connector, Through Hole Mount, ROHS COMPLIANT, SIP-9
$205.36 查看
TJA1043TK/1Y 1 NXP Semiconductors TJA1043 - High-speed CAN transceiver SON 14-Pin

ECAD模型

下載ECAD模型
$1.96 查看
TJA1021T/10/C,118 1 NXP Semiconductors TJA1021 - LIN 2.1/SAE J2602 transceiver SOIC 8-Pin

ECAD模型

下載ECAD模型
$1.44 查看
飛凌嵌入式

飛凌嵌入式

保定飛凌嵌入式技術(shù)有限公司,創(chuàng)建于2006年,是一家專(zhuān)注嵌入式核心控制系統(tǒng)研發(fā)、設(shè)計(jì)和生產(chǎn)的高新技術(shù)企業(yè),是國(guó)內(nèi)較早專(zhuān)業(yè)從事嵌入式技術(shù)的企業(yè)之一。 經(jīng)過(guò)十幾年的發(fā)展與積累,公司擁有業(yè)內(nèi)優(yōu)秀的軟硬件研發(fā)團(tuán)隊(duì),在北京及保定建立兩大研發(fā)基地,在蘇州、深圳設(shè)有華東、華南技術(shù)服務(wù)中心,并在北美、歐洲以及亞太等其他國(guó)家和地區(qū)擁有國(guó)際業(yè)務(wù)網(wǎng)絡(luò)。公司研發(fā)的智能設(shè)備核心平臺(tái)廣泛應(yīng)用于物聯(lián)網(wǎng)、工控、軌道交通、醫(yī)療、電力、商業(yè)電子、智能家居、安防、機(jī)器人、環(huán)境監(jiān)測(cè)等諸多領(lǐng)域。

保定飛凌嵌入式技術(shù)有限公司,創(chuàng)建于2006年,是一家專(zhuān)注嵌入式核心控制系統(tǒng)研發(fā)、設(shè)計(jì)和生產(chǎn)的高新技術(shù)企業(yè),是國(guó)內(nèi)較早專(zhuān)業(yè)從事嵌入式技術(shù)的企業(yè)之一。 經(jīng)過(guò)十幾年的發(fā)展與積累,公司擁有業(yè)內(nèi)優(yōu)秀的軟硬件研發(fā)團(tuán)隊(duì),在北京及保定建立兩大研發(fā)基地,在蘇州、深圳設(shè)有華東、華南技術(shù)服務(wù)中心,并在北美、歐洲以及亞太等其他國(guó)家和地區(qū)擁有國(guó)際業(yè)務(wù)網(wǎng)絡(luò)。公司研發(fā)的智能設(shè)備核心平臺(tái)廣泛應(yīng)用于物聯(lián)網(wǎng)、工控、軌道交通、醫(yī)療、電力、商業(yè)電子、智能家居、安防、機(jī)器人、環(huán)境監(jiān)測(cè)等諸多領(lǐng)域。收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜