婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 詳解shell 變量

詳解shell 變量

熱門標簽:蘭州電銷機器人加盟 電話機器人對家居行業幫助大嗎 如何申請400的電話呀 AI智能電銷機器人壞處 電商外呼系統排名 黑暗之魂3地圖標注 地圖標注審核周期 合肥電銷外呼系統供應商 沈陽ai電銷智能機器人

1.簡介

變量是任何一種編程語言都必不可少的組成部分,變量用來存放各種數據。腳本語言在定義變量時通常不需要指明類型,直接賦值就可以,Shell變量也遵循這個規則。

在Bash shell 中,每一個變量的值都是字符串,無論你給變量賦值時有沒有使用引號,值都會以字符串的形式存儲。這意味著,Bash shell 在默認情況下不會區分變量類型,即使你將整數和小數賦值給變量,它們也會被視為字符串,這一點和大部分的編程語言不同。如C/C++ ,變量分為整數、浮點數、字符串、布爾等多種類型。當然,如果有必要,你也可以使用declare/typeset Shell內建命令顯式定義變量的類型,但在一般情況下沒有這個需求,Shell 開發者在編寫代碼時自行注意值的類型即可。

2.變量類型

Shell中按照變量的作用域和生命周期,Shell變量可分為四大類:

(1)永久環境變量:需要修改配置文件,變量永久生效。

(2)臨時環境變量:使用export命令行聲明即可,變量在Shell腳本進程結束后仍然有效,但在關閉當前Shell會話后失效。

(3)全局變量:在腳本中定義,僅在當前Shell腳本中有效,其他Shell腳本進程不能訪問,其作用域從定義的位置開始,到腳本結束或被顯示刪除的地方為止。注意,全局變量既可以在Shell函數內定義,也可以在Shell函數外定義,因為Shell函數內定義的變量默認為global,且作用域從“函數被調用時執行變量定義的地方”開始,到腳本結束或被顯示刪除的地方為止。

#!/bin/bash

globalVar=dablelv	#全局變量

(4)局部變量。在Shell腳本中函數內顯示使用local關鍵字定義的變量。其作用域局限于函數內。同名local變量會屏蔽global變量。

#!/bin/bash

function test()
{
	local localVar=dablelv	#局部變量
}
test
echo $localVar			 	#輸出為空

3.定義變量

Shell 支持以下三種定義變量的方式:

var=value
var='value'
var="value"

var是變量名,value是賦給變量的值。如果value不包含任何空白符(例如空格、Tab等),那么可以不使用引號;如果value 包含了空白符,那么就必須使用引號包圍起來。使用單引號和使用雙引號也是有區別的,稍后我們會詳細說明。注意,賦值號的周圍不能有空格,這可能和你熟悉的大部分編程語言都不一樣。

Shell變量的命名規范和大部分編程語言都一樣:
(1)變量名由數字、字母、下劃線組成;
(2)必須以字母或者下劃線開頭;
(3)不能使用Shell里的關鍵字(通過help命令可以查看保留關鍵字)。

變量定義示例:

name='dablelv'
home="安徽"
age=28

4.訪問變量

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

name="dablelv"
echo $name
echo ${name}

變量名外面的花括號{}是可選的,加不加都行,加花括號是為了幫助解釋器識別變量的邊界,比如下面這種情況:

skill="Java"
echo "I am good at ${skill}Script"

如果不給skill變量加花括號,解釋器就會把$skillScript當成一個變量(其值為空),代碼執行結果就不是我們期望的樣子了。

推薦給所有變量加上花括號{ },這是個良好的編程習慣。

5.修改變量的值

已定義的變量,可以被重新賦值,如:

name='dablelv'
echo $name
name="billwong"

第二次對變量賦值時不能在變量名前加,只有在使用變量時才能加,只有在使用變量時才能加,只有在使用變量時才能加。

6.單引號和雙引號的區別

定義變量時,變量的值可以由單引號包圍,也可以由雙引號包圍,它們到底有什么區別呢?不妨以下面的代碼為例來說明:

#!/bin/bash

name='dablelv'
str1='我的名字是${name}'
str2="我的名字是${name}"
echo $str1
echo $str2

運行結果:

我的名字是${name}
我的名字是dablelv

以單引號包圍變量的值時,單引號里面是什么就輸出什么,即使內容中有變量和命令(命令需要反引起來)也會把它們原樣輸出。這種方式比較適合定義顯示純字符串的情況,即不希望解析變量、命令等的場景。

以雙引號包圍變量的值時,輸出時會先解析里面的變量和命令,而不是把雙引號中的變量名和命令原樣輸出。這種方式比較適合字符串中附帶有變量和命令并且想將其解析后再輸出的變量定義。

建議:如果變量的內容是數字,那么可以不加引號;如果真的需要原樣輸出就加單引號;其他沒有特別要求的字符串等最好都加上雙引號,定義變量時加雙引號是最常見的使用場景。

7.將命令的結果賦值給變量

Shell 也支持將命令的執行結果賦值給變量,常見的有以下兩種方式:

variable=`command`
variable=$(command)

第一種方式把命令用反引號包圍起來,反引號和單引號非常相似,容易產生混淆,所以不推薦使用這種方式;第二種方式把命令用$()包圍起來,區分更加明顯,所以推薦使用這種方式。

例如將兩個數值相加賦給某一變量。

var1=1
var2=2
varAdd1=`expr $var1 + $var2`
varAdd2=$(expr $var1 + $var2)

8.只讀變量

使用readonly命令,或者使用declare -rtypeset -r可以將變量定義為只讀變量,只讀變量的值不能被改變。

name="dablelv"
readonly name

declare -r name="dablelv"

typeset -r name="dablelv"

9.刪除變量

使用unset內置命令可以刪除變量。語法:

unset variable_name

unset命令不能刪除只讀變量。變量被刪除后不能再次使用。如

#!/bin/bash

name="dablelv"
unset name
echo $name

上面的腳本沒有任何輸出。

以上就是詳解shell 變量的詳細內容,更多關于shell 變量的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • 詳解shell 變量的高級用法示例
  • 處理Shell腳本中帶有空格的變量(bash腳本)
  • shell判斷一個變量是否為空方法總結
  • linux中shell的變量的數值計算
  • Shell編程之特殊變量和擴展變量詳解
  • Shell編程之變量數值計算方法示例
  • shell for循環、循環變量值付給其他shell腳本的方法
  • 詳解Shell編程之變量數值計算(二)
  • 詳解Shell編程之變量數值計算(一)
  • 淺談linux中shell變量$#,$@,$0,$1,$2的含義解釋

標簽:黔南 隴南 河北 通遼 淮南 黔南 河池 常州

巨人網絡通訊聲明:本文標題《詳解shell 變量》,本文關鍵詞  詳解,shell,變量,詳解,shell,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解shell 變量》相關的同類信息!
  • 本頁收集關于詳解shell 變量的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产精品国产三级国产a| 成年人午夜久久久| 日韩亚洲欧美在线| 亚洲精品在线网站| 日韩电影免费一区| 欧美视频在线播放| 日韩在线一区二区三区| 欧美日韩精品一区二区在线播放| 亚洲男人的天堂一区二区| 国产成人av一区二区三区在线| 久久婷婷一区二区三区| 国产69精品久久久久毛片| 国产性天天综合网| 色综合天天综合在线视频| 亚洲最大的成人av| 日韩一区二区电影| eeuss鲁片一区二区三区| 国产精品欧美精品| 日本福利一区二区| 亚洲国产欧美日韩另类综合| 国产成人av电影| 久久精品人人做| 成人午夜在线播放| 中文字幕一区在线| 成人av网站在线观看免费| 国产清纯在线一区二区www| 国产suv精品一区二区三区| 久久精品无码一区二区三区| 国产一区美女在线| 亚洲欧洲在线观看av| 99久久婷婷国产综合精品电影 | 一区二区理论电影在线观看| 欧美一级片在线看| 91偷拍与自偷拍精品| 亚洲va韩国va欧美va精品| 亚洲欧美日韩一区二区| 国产免费久久精品| 国产精品色哟哟网站| 国产视频911| 国产片一区二区三区| 久久精品一区四区| 国产精品高潮呻吟久久| 中文字幕av一区二区三区高| 91麻豆123| 波多野结衣在线一区| 日本一二三不卡| 91精品国产综合久久久久久久| 国产·精品毛片| 九九**精品视频免费播放| 亚洲综合清纯丝袜自拍| 国产精品乱码久久久久久| 久久精品一级爱片| 久久亚洲二区三区| 精品88久久久久88久久久| 日韩欧美一级二级三级久久久| 国内国产精品久久| 国产精品一级片| 国产成人综合视频| 亚洲电影在线免费观看| 亚洲欧美一区二区三区极速播放| 在线成人免费观看| 欧美一区二区精品久久911| 色婷婷久久一区二区三区麻豆| 成人午夜av影视| 不卡的av电影在线观看| 91一区在线观看| 在线观看日韩一区| 911精品国产一区二区在线| 日韩美女视频在线| 国产亚洲精品bt天堂精选| 日韩在线一二三区| 精品在线免费观看| 国产呦精品一区二区三区网站| 高清国产一区二区| 91亚洲精华国产精华精华液| 欧美三级韩国三级日本一级| 亚洲精品免费在线| 日韩一级完整毛片| 激情成人综合网| 国产精品白丝在线| 国产一区免费电影| 亚洲电影一级黄| 制服视频三区第一页精品| 91视频com| 亚洲免费观看高清在线观看| 91福利社在线观看| 亚洲成人一区在线| 国产精品99久久久久| 亚洲另类色综合网站| 日韩一区二区三区免费观看| 在线不卡的av| 国产精品黄色在线观看| 午夜久久久久久| 在线观看日韩av先锋影音电影院| 91精品国产色综合久久不卡电影 | 肉色丝袜一区二区| 91免费视频网址| 日韩情涩欧美日韩视频| 亚洲视频在线一区观看| 狠狠v欧美v日韩v亚洲ⅴ| 欧美日本在线一区| 一区二区三区丝袜| 成人ar影院免费观看视频| 色婷婷综合视频在线观看| 日韩三级中文字幕| 国产精品另类一区| 丁香六月综合激情| 欧美国产精品一区二区三区| 激情久久久久久久久久久久久久久久| 欧美性做爰猛烈叫床潮| 亚洲高清一区二区三区| 91在线观看一区二区| 久久久久综合网| 国产91精品一区二区麻豆亚洲| 欧美日韩一区精品| 日韩精品五月天| 欧美电视剧免费观看| 狠狠色狠狠色综合系列| 久久天堂av综合合色蜜桃网| 日日摸夜夜添夜夜添国产精品| 欧美日韩国产乱码电影| 美女视频黄 久久| 久久久久久久精| 日本久久精品电影| 91免费观看视频在线| 午夜欧美电影在线观看| 久久婷婷国产综合国色天香| gogo大胆日本视频一区| 亚洲二区在线视频| 欧美激情一区三区| 欧美一区二区三区小说| 成人激情开心网| 亚洲精品成人a在线观看| 日韩欧美不卡在线观看视频| 波多野结衣精品在线| 免费国产亚洲视频| 亚洲黄色小说网站| 国产欧美精品一区| 日韩精品一区二区三区视频播放 | 精品一区二区免费视频| 欧美激情一区二区三区全黄| 国产麻豆午夜三级精品| 天天综合天天做天天综合| 中文字幕佐山爱一区二区免费| 欧美草草影院在线视频| 欧美午夜精品一区二区蜜桃| 天天综合网 天天综合色| 亚洲一区二区精品视频| 欧美在线观看视频一区二区| 精品国产乱码久久久久久浪潮| 67194成人在线观看| 日韩欧美一级片| 亚洲欧美日韩电影| 蜜臀av性久久久久蜜臀aⅴ| 亚洲激情男女视频| 秋霞av亚洲一区二区三| 国产aⅴ综合色| 99久久免费精品高清特色大片| 欧美私模裸体表演在线观看| 欧美一区二区三区四区久久| 精品三级在线观看| 一区二区三区欧美视频| 国产一区二区中文字幕| 91亚洲国产成人精品一区二区三| 欧美婷婷六月丁香综合色| 精品国产伦一区二区三区观看方式 | 精品一区二区在线看| 色婷婷av一区二区三区软件| 精品久久久久久无| 午夜精品视频在线观看| 91原创在线视频| 国产欧美日韩三级| 国产乱对白刺激视频不卡| 日韩午夜精品电影| 美女mm1313爽爽久久久蜜臀| 在线观看三级视频欧美| 精品成人a区在线观看| 欧美日韩在线直播| 久99久精品视频免费观看| 综合中文字幕亚洲| 欧美高清精品3d| 国产麻豆精品视频| 精品国产91久久久久久久妲己 | 欧美日韩一本到| 午夜不卡在线视频| 日韩片之四级片| 成人激情开心网| 喷白浆一区二区| 亚洲欧美一区二区在线观看| 日韩色视频在线观看| 精久久久久久久久久久| 国产精品久久久一区麻豆最新章节| 91亚洲大成网污www| 蜜桃一区二区三区四区| 亚洲一区电影777| 国产精品入口麻豆九色| 欧美国产在线观看| 国产精品久久精品日日| 久久久久久久久伊人| 欧美精品丝袜中出|