亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

shell基礎篇(二)-shell變量

2024-06-28 13:24:14
字體:
來源:轉載
供稿:網友
shell基礎篇(二)-shell變量

1. 定義變量

1).定義變量時,變量名不加美元符號($),如: var="hello world"2).注意,變量名和等號之間不能有空格,這可能和你熟悉的所有編程語言都不一樣。同時,變量名的命名須遵循如下規則: 首個字符必須為字母(a-z,A-Z)。 中間不能有空格,可以使用下劃線(_)。 不能使用標點符號。 不能使用bash里的關鍵字。 var01=100var02="100"注意,這兩個變量存的都是字符串。我們的shell是解釋型語言,不像C,java需要編譯。


2.使用變量

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

echo $varecho ${var}   ##推薦這種。

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

filename="lottu"echo "this is ${filename}01"如果不給filename變量加花括號,寫成echo "this is $filename01",

解釋器就會把filename01當成一個變量(其值為空),這個filename01我們可沒定義。代碼執行結果就不是我們期望的樣子了


3.重新定義變量


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

abc="lottu"echo ${abc}abc="hello world"echo ${abc}

4. 只讀變量

使用 readonly 命令可以將變量定義為只讀變量,只讀變量的值不能被改變。即其他語言的常量。如lottu03.sh

#!/bin/bashvar01="20"echo ${var01}readonly var01var01="10"

運行結果如下:

$ ./lottu03.sh 20./lottu03.sh: line 5: var01: readonly variable

5. 刪除變量

使用 unset 命令可以刪除變量。語法: unset varname變量被刪除后不能再次使用;unset 命令不能刪除只讀變量。


6. 顯示所有變量

看看這個用戶下有哪些變量包括環境變量,本地變量:set ##我們之前定義的var,abc就是在這里面。只顯示環境變量: env本地變量轉換為環境變量;使用命令export刪除環境變量;跟本地變量沒區別;使用命令unset.


7.變量的間接引用

variable:+Word :如果變量 variable 被定義,那么返回 word,但不改變 variable 的值。variable:=value :對未賦值的variable,將value值賦給它variable:-value :對未賦值的variable,將value值賦給它,但不改變 variable 的值。

:=和:-是兩種常用的符號,看下面的例子

例1:先將colour賦值為black,然后輸出${colour:=blue}和${colour:-blue},兩者輸出結果相同,都為black,這是因為colour變量已經賦過值“:=”和”:-”都不重設其值。注意,使用以上兩種符號時,都需要用花括號將賦值式子括起來,否則Shell將colour:=blue整個字符串當做變量名進行處理。

$colour=black$echo "The background is ${colour:=blue}" The background is black$echo "The background is ${colour:-blue}" The background is black

例2:清除colour變量值,再分別輸出${colour:=blue}、$colour和${colour:-blue}、$colour的值,結果顯示:${colour:=blue}和${colour:-blue}值都為blue,因為colour未賦值兩個符號都將blue賦給colour。但是,調用${colour:-blue}后,colour仍然為空,即”:-”符號未將blue真正存儲到colour中,而“:=”符號將blue真正存儲起來。

$unset colour$echo "The background is ${colour:-blue}" The background is blue$echo $colour$echo "The background is ${colour:=blue}" The background is blue$echo $colour                           #注意這步跟上面的比較 blue  


8.特殊變量:Shell $0, $#, $*, $@, $?, $$和命令行參數

在此先聲明:這里的$0,$1-$9就別跟awk里面的弄混淆了;它們的意義是完全不同的哦。

變量 含義$0 當前腳本的文件名$n 傳遞給腳本或函數的參數。n 是一個數字,表示第幾個參數。例如,第一個參數是$1,第二個參數是$2。$# 傳遞給腳本或函數的參數個數。$* 傳遞給腳本或函數的所有參數。$@ 傳遞給腳本或函數的所有參數。被雙引號(" ")包含時,與 $* 稍有不同。$? 上個命令的退出狀態,或函數的返回值。$$ 當前Shell進程ID。對于 Shell 腳本,就是這些腳本所在的進程ID?!咀⒁狻繉?n;若n大于9;則需要加衣服{}。不然會凍僵了,就沒人會認識了。例如${10}。這我就認識原來是老十。反之;你是老1+0,還是老十。這個我就要好好想想了。

對于$?:可以獲取上一個命令的退出狀態。所謂退出狀態,就是上一個命令執行后的返回結果。記住是上一個命令執行結果或者條件判斷結果。意思是說你的條件判斷有一堆命令;也只取最后一個;例如ll;cd md。是取cd md的返回結果。退出狀態是一個數字,一般情況下,大部分命令執行成功會返回 0,失敗返回 1意思是boolean說 0是成功的狀態;非0是失敗的狀態。這跟awk里面的正好相反。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品一区二三区不卡| 亚洲欧美一区二区激情| 久久久欧美一区二区| 国产一区二区美女视频| 国产精品免费久久久久久| 国产精品自产拍在线观看中文| 91精品国产综合久久久久久久久| 91精品中国老女人| 国产网站欧美日韩免费精品在线观看| 91精品国产91久久久久久久久| 欧美精品福利在线| 色综合色综合网色综合| 这里只有视频精品| 成人黄色免费网站在线观看| 亚洲激情在线观看视频免费| 国产aaa精品| 91国产精品视频在线| 日韩欧美精品免费在线| 国产精品视频公开费视频| 亚洲成人激情在线| 国产一区二区三区视频免费| 国产精品一区电影| 亚洲国产成人精品一区二区| 在线免费看av不卡| 中文国产亚洲喷潮| 国产精品久久久久av| 69国产精品成人在线播放| 欧美国产亚洲视频| 欧美整片在线观看| 日韩在线观看成人| 日本欧美中文字幕| 国产精品99久久久久久久久| 亚洲国产精品久久久久秋霞蜜臀| 日本久久久久亚洲中字幕| 不卡在线观看电视剧完整版| 亚洲欧美日韩中文在线制服| 亚洲影院色在线观看免费| 久久亚洲影音av资源网| 91精品国产自产在线观看永久| 中文一区二区视频| 国产在线观看一区二区三区| 日韩美女写真福利在线观看| 日本高清不卡在线| 成人av在线网址| 国产欧美精品一区二区| 国产日韩精品综合网站| 亚洲精品ady| 日韩欧美中文第一页| 亚洲精品自拍偷拍| 国产精品成人av在线| 蜜臀久久99精品久久久无需会员| 国产精品va在线播放我和闺蜜| 在线观看日韩www视频免费| 欧美乱大交xxxxx另类电影| 精品国产精品三级精品av网址| 亚洲精品久久久久中文字幕欢迎你| 日韩中文字幕网| 久久乐国产精品| 精品久久久久久久久久久久久| 欧美裸体xxxx极品少妇软件| 久久精品电影网| 日韩av在线免费观看| 欧美夜福利tv在线| 国产精品极品美女粉嫩高清在线| 一区二区三区黄色| 亚洲成年人影院在线| 日韩精品极品在线观看播放免费视频| 亚洲精品电影网| 亚洲欧洲xxxx| 欧美日韩一区二区三区在线免费观看| 久久伊人精品视频| 日韩欧美国产激情| 69av视频在线播放| 久久久久久久久久久av| 18一19gay欧美视频网站| 美日韩精品视频免费看| 91精品视频免费| 在线电影欧美日韩一区二区私密| 欧美日韩午夜视频在线观看| xxx成人少妇69| 97成人精品视频在线观看| 国产精品∨欧美精品v日韩精品| 久久99精品视频一区97| 在线日韩日本国产亚洲| 日韩高清不卡av| 国产精自产拍久久久久久蜜| 亚洲最新av网址| xxxxx成人.com| 成人日韩av在线| 国产日韩中文字幕在线| 国内精品中文字幕| 国产精自产拍久久久久久蜜| 欧美成人午夜激情在线| 亚洲精品视频免费| 国产三级精品网站| 日韩电视剧免费观看网站| 成人在线视频网站| 国产日韩在线视频| 96pao国产成视频永久免费| 国产精品1区2区在线观看| 国产精品v片在线观看不卡| 麻豆国产va免费精品高清在线| 色偷偷噜噜噜亚洲男人的天堂| 亚洲欧美一区二区精品久久久| 在线观看国产精品日韩av| 疯狂欧美牲乱大交777| 欧美激情一级欧美精品| 久久国产精品首页| 欧美亚洲第一区| 国产91精品在线播放| 日本最新高清不卡中文字幕| 亚洲免费小视频| 一区二区三区回区在观看免费视频| 久久久久中文字幕2018| 一区二区三区四区在线观看视频| 尤物tv国产一区| 久久久久国产视频| 久久躁狠狠躁夜夜爽| 日韩精品一二三四区| 国产视频一区在线| 黑人极品videos精品欧美裸| 亚洲japanese制服美女| 中文字幕亚洲情99在线| 国产精品爱啪在线线免费观看| 午夜精品视频网站| 91国产视频在线| 亚洲精品永久免费| 久久中文字幕视频| 亚洲欧美国产精品va在线观看| 68精品国产免费久久久久久婷婷| 精品免费在线视频| 97久久伊人激情网| 欧美夫妻性生活xx| 亚洲国产精品久久久久久| 91色在线观看| 日韩亚洲综合在线| 欧美大码xxxx| 亚洲美女又黄又爽在线观看| 久久久久99精品久久久久| 亚洲国产精彩中文乱码av| 久久91超碰青草是什么| 亚洲成人激情在线观看| 日韩欧美成人区| 国产玖玖精品视频| 亚洲精品黄网在线观看| 久久久久久一区二区三区| 97香蕉超级碰碰久久免费软件| 亚洲第一男人天堂| 69视频在线免费观看| 揄拍成人国产精品视频| 91精品中文在线| 国产精品视频1区| 91久久国产精品91久久性色| 美女扒开尿口让男人操亚洲视频网站| 91精品在线一区| 欧美中文字幕精品| 4438全国亚洲精品在线观看视频| 久久成人一区二区| 国产精品视频区| 欧美极品少妇xxxxⅹ裸体艺术| 亚洲第一色中文字幕| 久久人人爽人人爽人人片av高清| 在线观看久久av| 97在线观看视频|