校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 詳解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 變量的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    欧美色涩在线第一页| 一本色道久久综合亚洲aⅴ蜜桃| 狠狠色综合播放一区二区| 欧美一级欧美一级在线播放| 麻豆高清免费国产一区| 久久女同互慰一区二区三区| 成人免费精品视频| 亚洲高清不卡在线| 精品国产一区二区三区久久影院| 久久99久久99小草精品免视看| 欧美国产1区2区| 色菇凉天天综合网| 久久国产福利国产秒拍| 国产精品乱码久久久久久| 欧美性色黄大片手机版| 国产成人av网站| 亚洲不卡一区二区三区| 国产精品久久久99| 欧美一区二区三区在线电影| 99久久精品免费看国产免费软件| 蜜桃视频一区二区三区| 亚洲免费观看高清完整版在线观看熊 | 免费在线观看一区| 国产精品久久久久一区| 日韩一卡二卡三卡国产欧美| 91在线观看视频| 国产精品一二三区| 欧美aaa在线| 亚洲成av人片在线观看| 国产精品国产三级国产| 精品福利一区二区三区| 欧美精品视频www在线观看| 99热这里都是精品| 国产精品中文字幕日韩精品| 日本成人在线一区| 一级做a爱片久久| 国产精品成人网| 久久女同互慰一区二区三区| 在线综合+亚洲+欧美中文字幕| 99久久精品99国产精品| 懂色av中文一区二区三区| 国产在线精品一区二区三区不卡| 美女脱光内衣内裤视频久久影院| 五月综合激情婷婷六月色窝| 亚洲综合另类小说| 亚洲一级二级在线| 亚洲bt欧美bt精品| 婷婷六月综合亚洲| 日本不卡在线视频| 日韩影院在线观看| 视频一区二区三区在线| 丝袜亚洲另类欧美| 日本aⅴ免费视频一区二区三区| 视频一区国产视频| 青娱乐精品视频在线| 蜜桃视频在线观看一区二区| 美腿丝袜一区二区三区| 美腿丝袜亚洲色图| 国产精品自拍毛片| 成人激情图片网| 色av成人天堂桃色av| 欧亚洲嫩模精品一区三区| 欧美综合一区二区| 制服丝袜日韩国产| 2021中文字幕一区亚洲| 国产三级一区二区| 有坂深雪av一区二区精品| 亚洲国产综合在线| 麻豆91在线播放免费| 懂色av中文一区二区三区| 色悠久久久久综合欧美99| 欧美丝袜丝交足nylons图片| 日韩欧美成人一区| 国产精品久久看| 性做久久久久久免费观看| 精品亚洲国产成人av制服丝袜| 久久不见久久见免费视频7| 国产成人激情av| 色婷婷国产精品| www国产成人| 亚洲成人自拍偷拍| 日本电影欧美片| 精品国产乱码久久久久久图片 | 不卡的av在线| 91国偷自产一区二区开放时间 | 亚洲男人的天堂在线aⅴ视频| 国产精品中文字幕一区二区三区| 免费av成人在线| 国产露脸91国语对白| 日本不卡一区二区三区| 亚洲六月丁香色婷婷综合久久 | 亚洲第一电影网| 在线亚洲+欧美+日本专区| 欧美日韩夫妻久久| 国产精品另类一区| 日日噜噜夜夜狠狠视频欧美人 | 欧洲av在线精品| 国产午夜一区二区三区| 五月激情综合婷婷| 色哟哟一区二区| 久久综合久久综合久久综合| 亚洲图片欧美色图| 色香色香欲天天天影视综合网 | 欧美国产精品一区二区| 蜜桃精品在线观看| 精品视频在线免费| 亚洲天天做日日做天天谢日日欢 | 麻豆一区二区在线| 欧美日韩国产在线观看| 中文字幕在线免费不卡| 国产一区二区美女| 精品国产三级电影在线观看| 婷婷国产v国产偷v亚洲高清| 欧美在线高清视频| 亚洲少妇中出一区| 色综合久久综合网97色综合 | 国产欧美一区视频| 国产精品1024| 久久久欧美精品sm网站| 精品在线免费观看| 久久综合色8888| 国产一区在线看| 久久午夜色播影院免费高清| 国产一区二区三区日韩| 精品福利av导航| 国产高清亚洲一区| 中文字幕第一区综合| 99在线视频精品| 一区二区三区日韩精品视频| 欧美中文字幕一二三区视频| 亚洲精品高清视频在线观看| 欧美亚洲一区三区| 日产国产欧美视频一区精品| 欧美大片免费久久精品三p| 久久国产精品99精品国产| 国产婷婷色一区二区三区在线| 成人午夜在线视频| 亚洲欧洲中文日韩久久av乱码| 91蜜桃在线观看| 亚洲国产欧美一区二区三区丁香婷| 欧美无砖专区一中文字| 日本美女一区二区三区| 久久色.com| 色婷婷亚洲综合| 毛片av一区二区| 亚洲欧洲成人自拍| 欧美一区二区三区四区在线观看| 美女视频一区在线观看| 国产精品久久久久久久久晋中| 91福利在线观看| 蓝色福利精品导航| 亚洲色图欧洲色图| 欧美一区二区啪啪| 99久久综合精品| 青青草精品视频| 亚洲色图第一区| 欧美岛国在线观看| 在线视频你懂得一区| 精东粉嫩av免费一区二区三区| 亚洲免费观看高清完整版在线观看| 欧美美女一区二区三区| 丁香一区二区三区| 日韩成人免费电影| 国产精品久久看| 日韩美女在线视频| 99riav久久精品riav| 精品在线播放免费| 亚洲1区2区3区4区| 亚洲色欲色欲www| 欧美xxxxxxxx| 欧美三级在线视频| 成人动漫一区二区三区| 日韩av在线播放中文字幕| 国产精品的网站| 26uuu精品一区二区| 欧美在线观看视频一区二区三区| 国产精品影视在线观看| 日韩一区精品视频| 亚洲午夜免费电影| 欧美国产禁国产网站cc| 精品国产乱码久久久久久图片| 欧美日韩一本到| 欧美系列在线观看| 成人av先锋影音| 在线观看国产日韩| 激情综合网最新| 激情综合网最新| 国产精品视频一二三区 | 欧美麻豆精品久久久久久| 99久久国产综合精品女不卡| 91在线视频免费观看| 粉嫩av亚洲一区二区图片| 精品在线视频一区| 成人免费视频网站在线观看| 99精品视频中文字幕| 欧美福利电影网| 亚洲国产欧美在线人成| 国产精品欧美一区喷水| 91精品国产综合久久久久久久| 国产一区二区伦理片|