精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Shell特殊變量和命令行參數詳解

系統 Linux 系統運維
shell變量是一種很“弱”的變量,默認情況下,一個變量保存一個串,shell不關心這個串是什么含義。所以若要進行數學運算,必須使用一些命令例如let、declare、expr、雙括號等。

Linux shell

1.shell變量基礎

shell變量是一種很“弱”的變量,默認情況下,一個變量保存一個串,shell不關心這個串是什么含義。

所以若要進行數學運算,必須使用一些命令例如let、declare、expr、雙括號等。

shell變量可分為兩類:局部變量和環境變量。

局部變量只在創建它們的shell中可用;而環境變量則可以在創建它們的shell及其派生出來的任意子進程中使用。

有些變量是用戶創建的,其他的則是專用shell變量。

變量名必須以字母或下劃線字符開頭。其余的字符可以是字母、數字(0~9)或下劃線字符。

任何其他的字符都標志著變量名的終止。

名字是大小寫敏感的。

給變量賦值時,等號周圍不能有任何空白符。

為了給變量賦空值,可以在等號后跟一個換行符。

用set命令可以查看所有的變量,unset var命令可以清除變量var,var相當于沒有定義過。readonly var可以把var變為只讀變量,定義之后不能對var進行任何更改。

對shell變量的引用方式很多,用這些方式可以方便的獲取shell變量的值,變量值的長度,變量的一個字串,變量被部分替換后的值等等。

shell變量常見引用方式如下:

 

 

 

 

 

 

 

 

 

 

 

 

2.環境變量

環境變量的定義方法如下:

var=value

export var

shell在初始化的時候會在執行profile等初始化腳本,腳本中定義了一些環境變量,這些變量會在創建子進程時傳遞給子進程。

用env命令可以查看當前的環境變量。常用的系統環境變量如下:

_(下劃線):上一條命令的最后一個參數

BASH:展開為調用bash實例時使用的全路徑名

CDPATH:cd命令的搜索路徑。它是以冒號分隔的目錄列表,shell通過它來搜索cd命令指定的目標目錄。例如.:~:/usr

EDITOR:內置編輯器emacs、gmacs或vi的路徑名

ENV:每一個新的bash shell(包括腳本)啟動時執行的環境文件。通常賦予這個變量的文件名是.bashrc。

EUID:展開為在shell啟動時被初始化的當前用戶的有效ID

GROUPS:當前用戶所屬的組

HISTFILE:指定保存命令行歷史的文件。默認值是~/.bash_history。如果被復位,交互式shell退出時將不保存命令行歷史

HISTSIZE:記錄在命令行歷史文件中的命令數。默認是500

HOME:主目錄。未指定目錄時,cd命令將轉向該目錄

IFS:內部字段分隔符,一般是空格符、制表符和換行符,用于由命令替換,循環結構中的表和讀取的輸入產生的詞的字段劃分

LANG:用來為沒有以LC_開頭的變量明確選取的種類確定locale類

OLDPWD:前一個工作目錄

PATH:命令搜索路徑。一個由冒號分隔的目錄列表,shell用它來搜索命令,一個普通值為 /usr/gnu/bin:/usr/local/bin:/usr/ucb:/usr/bin

PPID:父進程的進程ID

PS1:主提示符串,默認值是$

PS2:次提示符串,默認值是>

PS3:與select命令一起使用的選擇提示符串,默認值是#?

PS4:當開啟追蹤時使用的調試提示符串,默認值是+。追蹤可以用set –x開啟

PWD:當前工作目錄。由cd設置

RANDOM:每次引用該變量,就產生一個隨機整數。隨機數序列可以通過給RANDOM賦值來初始化。如果RANDOM被復位,即使隨后再設置,它也將失去特定的屬性

REPLY:當沒有給read提供參數時設置

SHELL:當調用shell時,它掃描環境變量以尋找該名字。shell給PATH、PS1、PS2、MAILCHECK和IFS設置默認值。HOME和MAIL由login(1)設置

SHELLOPTS:包含一列開啟的shell選項,比如braceexpand、hashall、monitor等

UID:展開為當前用戶的用戶ID,在shell啟動時初始化

3.數值變量

shell中默認把變量值當作字符串,例如:

  1. age=22 
  2.  
  3. age=${age}+1 
  4.  
  5. echo ${age} 

 

輸出結果為22+1,而不是23,因為shell將其解釋為字符串,而不是數學運算。

可以用let命令使其進行數學運算,例如:

  1. let age=${age}+1 

也可以用declare把變量定義為整型。例如:

  1. declare -i age=22 

這里就用 -i 選項把age定義為整型的了。此后每次運算,都把age的右值識別為算術表達式或數字。

4.數組

在shell中可以使用數組,例如:

  1. array[0]=0 
  2.  
  3. array[1]=1 
  4.  
  5. array[2]=2 

 

則array就是一個數組,也可以這樣給數組初始化:

  1. array=(0 1 2) // 元素之間以空格分隔 

可以通過 ${array[$i]}來訪問array中某個元素,${array[*]} 的返回值即數組的所有元素組成的串,${#array[*]} 的返回值即數組的元素個數,${array[*]:0:2} 返回第一個和第二個元素組成的串。

0表示開始的位置,2表示要返回的元素個數,開始位置可以為0-2(0減去2)之類的,表示從倒數第二個元素開始。

下面寫個稍微復雜點的例子:

 

 

 

 

如果要使用二維數組甚至三維數組該怎么實現呢,那就需要用eval命令來模擬數組的功能了。

eval命令的作用是掃描命令兩次再執行,如果不使用eval,只掃描一次,然后執行。看個例子:

  1. root@suse:~$ name=Barry 
  2.  
  3. root@suse:~$ $name=hello 
  4.  
  5. Barry=hello: command not found 

 

為什么第二句給Barry變量賦值會出錯呢?

從報錯信息可以發現shell并沒有識別這是個賦值語句,而是把Barry=hello當作一個命令來執行,當然會報錯。

為什么不能識別這是賦值語句呢?

第一次掃描時,因為掃描到$符號,所以不能把這句當作賦值語句,賦值語句的左邊總是一個變量名,而不應該是$開頭的。

所以第一次掃描僅僅識別了$name變量,并做了替換,而并沒有認識到賦值語句。

如果使用eval $name=hello呢?

 

  1. root@suse:~$ name=Barry 
  2.  
  3. root@suse:~$ $name=hello 
  4.  
  5. Barry=hello: command not found 
  6.  
  7. root@suse:~$ eval $name=hello 
  8.  
  9. root@suse:~$ echo $Barry 
  10.  
  11. hello 

 

可見使用了eval之后,對 $name=hello 第一次掃描替換了$name,沒有識別賦值語句,第二次掃描識別是賦值語句,然后執行。

現在大約可以想到怎樣用eval實現二維數組了。

下面實現的二維數組每一行代表一個人的信息記錄,包括姓名,年齡。

 

 

 

 

5.特殊變量

$0:當前腳本的文件名

$num:num為從1開始的數字,$1是第一個參數,$2是第二個參數,${10}是第十個參數

$#:傳入腳本的參數的個數

$*:所有的位置參數(作為單個字符串)

$@:所有的位置參數(每個都作為獨立的字符串)。

$?:當前shell進程中,上一個命令的返回值,如果上一個命令成功執行則$?的值為0,否則為其他非零值,常用做if語句條件

$$:當前shell進程的pid

$!:后臺運行的最后一個進程的pid

$-:顯示shell使用的當前選項

$_:之前命令的最后一個參數 

責任編輯:龐桂玉 來源: 馬哥Linux運維
相關推薦

2023-11-30 10:42:43

Rust命令行參數

2021-01-13 05:29:26

命令行

2019-04-16 06:50:34

2010-11-24 15:33:59

mysql命令行參數

2021-05-31 12:05:46

Shell命令Linux

2010-03-10 17:23:37

Python 命令行參

2009-12-24 14:51:39

Linux命令行

2023-07-05 08:38:48

GolangGo語言

2010-07-20 14:02:38

Perl命令行參數

2010-07-26 09:32:41

Perl命令行

2011-08-22 11:51:13

Linuxconfigure

2024-03-06 15:57:56

ShellLinux

2009-08-11 09:58:22

Linux命令行Linux命令svn命令

2009-12-02 11:20:56

PHP命令行參數

2010-07-15 09:27:25

Perl命令行

2011-02-23 17:07:47

FileZillaSe

2010-07-26 09:22:05

Perl命令行

2009-12-25 16:04:06

shell命令行

2009-11-18 13:46:11

PHP命令行

2017-05-25 10:32:40

命令linux系統
點贊
收藏

51CTO技術棧公眾號

老司机精品影院| 久久99精品波多结衣一区| 精品视频一区二区三区四区五区| 国产精品色婷婷| 91超碰在线电影| 国产奶水涨喷在线播放| 蜜桃精品wwwmitaows| 欧美久久久久久蜜桃| 日韩一级免费看| 精品亚洲综合| 国产成人免费视频| 国产精品久久久久免费a∨| 欧美卡一卡二卡三| 欧美精品色图| 亚洲精品www久久久| 最新天堂中文在线| 国模精品视频| 亚洲免费在线视频| 日韩影院一区| 色综合视频在线| 国模一区二区三区白浆| 欧美亚洲激情视频| 久久av高潮av无码av喷吹| 欧美理论在线播放| 亚洲第一视频网| 中文字幕色网站| 日韩精品免费观看视频| 午夜精品影院在线观看| 婷婷久久青草热一区二区| 亚洲成人中文字幕在线| 六月婷婷色综合| 欧美亚洲第一页| 国产亚洲精品av| 91精品一区国产高清在线gif | 亚洲熟妇av日韩熟妇在线| 亚洲成人三级| 国产日韩影视精品| 国产一区二区三区av在线| 国产又粗又黄又爽| 青青青伊人色综合久久| 91av在线播放| 日本中文字幕在线免费观看| 你懂的国产精品| 久久精品精品电影网| 色欲AV无码精品一区二区久久| 国产精品巨作av| 日韩免费高清视频| 久久久久无码精品| 精品中文视频| 91精品国产综合久久精品性色| 亚洲欧美国产日韩综合| 日本在线精品| 欧美丝袜自拍制服另类| 88av.com| 日本欧美韩国| 欧美日韩成人高清| 红桃视频 国产| 伊人久久大香| 91精品国模一区二区三区| 亚洲欧美日本一区二区| 欧美影院在线| 日韩三级在线免费观看| 成人三级做爰av| 中文字幕av一区二区三区四区| 精品久久久久久久久久久久久久久久久 | 日韩大片在线观看视频| 欧美夫妇交换xxx| 看全色黄大色大片免费久久久| 日韩激情av在线播放| 欧美丰满少妇人妻精品| 国产精品欧美日韩一区| 中文字幕精品www乱入免费视频| 欧日韩不卡视频| 伊人久久大香线蕉综合四虎小说 | 色豆豆成人网| 欧美色男人天堂| aaaaaaaa毛片| 免费萌白酱国产一区二区三区| 亚洲精品久久久久中文字幕欢迎你| 好吊一区二区三区视频| 欧美激情在线免费| 久久九九国产精品怡红院| 久久久久国产精品夜夜夜夜夜| 亚洲午夜一级| 国产成人精品在线播放| 国产又黄又粗又硬| www.久久久久久久久| 欧美一区二区三区四区夜夜大片| 天堂а√在线官网| 亚洲福利视频三区| 热久久精品免费视频| 欧美视频二区欧美影视| 亚洲精品久久久久久久久| 五月婷婷欧美激情| 国产一区二区三区四区三区四| 国产91成人video| 一级片aaaa| 99久久精品一区二区| 亚洲欧洲精品一区二区三区波多野1战4 | 97成人在线观看视频| 久久婷婷五月综合色丁香| 欧美va亚洲va香蕉在线| 无码人妻丰满熟妇啪啪欧美| 国产尤物精品| 国产精品旅馆在线| 日韩中文字幕免费在线观看| 国产精品三级av| 91专区在线观看| 国产亚洲高清一区| 亚洲人成网在线播放| 动漫性做爰视频| 日韩不卡一区二区三区| 国产伦精品一区二区三区免| eeuss影院www在线观看| 五月婷婷欧美视频| 男插女视频网站| 日韩一区二区三区免费播放| 97国产精品久久| jizz国产视频| 国产精品久99| www.国产区| 九色丨蝌蚪丨成人| 欧美高清性猛交| 6—12呦国产精品| 久久九九久久九九| 欧美色图另类小说| 成人三级毛片| 色综合天天综合网国产成人网| 亚洲天堂网视频| 国产亚洲综合色| 欧美在线观看成人| 国偷自产av一区二区三区| 久久国产精品久久精品| 中文字幕乱码视频| 久久精品视频免费观看| 国产主播在线看| 久久大胆人体视频| 国产综合在线视频| 亚洲国产精品二区| 亚洲精品中文在线| 三日本三级少妇三级99| 99精品视频在线| 国产美女精彩久久| 麻豆影院在线| 91麻豆精品91久久久久久清纯| 麻豆一区在线观看| 蜜臀99久久精品久久久久久软件| 日韩国产伦理| 日韩毛片一区| 最新中文字幕亚洲| 国产精品视频一二区| 综合久久久久久| 91pony九色| 亚洲影视一区二区三区| 91在线观看免费网站| 2024最新电影在线免费观看| 5858s免费视频成人| 国语对白在线播放| 国产xxx精品视频大全| 国产精品无码电影在线观看| 91精品短视频| 欧美在线观看网站| 国产青青草在线| 欧美日韩午夜在线视频| 欧美xxxooo| 国产成人综合在线观看| 欧美精品自拍视频| 亚洲肉体裸体xxxx137| 国产97在线|亚洲| 尤物在线视频| 欧美成人精品3d动漫h| 日韩欧美大片在线观看| 国产丝袜在线精品| 在线观看免费不卡av| 夜间精品视频| 精品国产免费一区二区三区| 欧美影视资讯| 欧美大学生性色视频| 涩爱av在线播放一区二区| 欧美中文字幕一区二区三区 | 黄色欧美成人| 欧美精彩一区二区三区| 久久亚洲国产精品尤物| 欧美日韩国产成人在线| 污视频在线免费| 欧美色区777第一页| 免费在线观看黄色av| 久久免费电影网| 中文字幕55页| 久久高清一区| 玖玖精品在线视频| 综合国产视频| aa日韩免费精品视频一| 日韩精品一区二区三区| 久久久成人精品视频| 视频一区二区在线播放| 欧美一区日韩一区| 精品人妻无码一区二区性色| 亚洲欧洲美洲综合色网| 亚洲av无码国产精品久久| 国产一区不卡在线| 99色精品视频| 国产精品99一区二区| 色爱区成人综合网| 国产图片一区| 91美女片黄在线观看游戏| 性爽视频在线| 欧美激情第一页xxx| 1769在线观看| 国产丝袜高跟一区| 亚洲AV无码一区二区三区少妇| 91九色最新地址| 日产精品久久久久| 亚洲免费观看高清完整版在线观看| 永久免费看mv网站入口78| 国产精品911| 污视频网站观看| 蜜桃伊人久久| 欧美视频免费看欧美视频| 亚洲最大av| 在线一区亚洲| 日韩不卡一区| 日产精品高清视频免费| 免费福利视频一区| 国产精品免费视频一区二区| 国产一区二区三区视频在线| 国产精品色悠悠| 婷婷综合六月| 青青精品视频播放| 国产一二三在线| 91av在线国产| 密臀av在线播放| 午夜精品久久久久久99热| a黄色片在线观看| 久久久电影免费观看完整版| 永久免费在线观看视频| 精品爽片免费看久久| 成人毛片在线精品国产| 日韩欧美一区二区不卡| av中文字幕免费| 欧美一级高清大全免费观看| 国产又大又黄又爽| 4438x亚洲最大成人网| 亚洲熟妇av乱码在线观看| 欧美综合欧美视频| 中文字幕乱码视频| 欧美日韩国产美女| 一级黄色大片网站| 777奇米成人网| 国产999久久久| 日韩精品一区二区三区在线 | 久久夜精品va视频免费观看| 亚洲成人三级| 久久久av免费| 欧美巨大xxxx做受沙滩| 久久久久久久网站| 水蜜桃在线视频| 国产99久久久欧美黑人| 欧美精品总汇| 91久久精品国产91久久性色| 日韩视频在线直播| 国产一区国产精品| 香蕉视频一区| 日韩一区国产在线观看| 国产精品99久久精品| 欧美日韩视频免费| 在线视频日韩| 99热手机在线| 国产乱码精品一区二区三区五月婷| 欧美性猛交乱大交| 99re6这里只有精品视频在线观看| 特大黑人巨人吊xxxx| 亚洲国产成人私人影院tom| 自拍偷拍第9页| 洋洋成人永久网站入口| 欧美日韩乱国产| 欧美色老头old∨ideo| 精品黑人一区二区三区在线观看 | 欧美一区二区三区视频免费播放 | 久久久精品毛片| 欧美精品v日韩精品v韩国精品v| 性生活视频软件| 亚洲另类激情图| 国产在线二区| 5566成人精品视频免费| 中文字幕综合| 国产伦精品一区二区三区视频免费 | 亚洲精品一区二区毛豆| 欧美久久视频| 男女啪啪网站视频| 国产福利一区二区三区在线视频| 国产精品一级黄片| 综合久久综合久久| 亚洲天堂av片| 日韩三级视频中文字幕| 国产在线视频网| 久久99精品久久久久久噜噜| 亚洲高清黄色| 国产九色91| 香蕉综合视频| 国产综合免费视频| 国产成人免费视频一区| 国产18无套直看片| 岛国av一区二区在线在线观看| 国产精品久久久国产盗摄| 亚洲美女久久久| 青草青在线视频| 国产噜噜噜噜噜久久久久久久久 | 成人免费高清视频在线观看| 在线看片中文字幕| 欧美性高跟鞋xxxxhd| 性做久久久久久久久久| 久久精品亚洲一区| 日韩高清成人| 美女一区视频| 亚洲另类自拍| 亚洲精品一二三四| 综合久久一区二区三区| 国产精品xxxxxx| 日韩电影在线观看中文字幕| 少妇av在线| 91在线视频精品| 91嫩草亚洲精品| 精品久久久久久久无码| 26uuu久久天堂性欧美| 五月天婷婷网站| 精品久久久网站| 免费影视亚洲| 亚洲自拍偷拍区| 国产精品久久久久无码av| 99免费视频观看| 91蜜桃传媒精品久久久一区二区| 欧美黑人一级片| 日韩一区二区免费视频| 成人免费高清| 亚洲一区二区在线| 一区二区日韩欧美| 国产成人在线综合| 亚洲欧洲精品成人久久奇米网| 夜夜躁日日躁狠狠久久av| 一本色道久久综合亚洲精品小说| 依依综合在线| 欧美aaaaa喷水| 久久九九精品| 欧美另类z0zx974| 91成人国产精品| 91啦中文在线| 成人精品久久久| 亚洲成人二区| 日本中文字幕在线不卡| 一区二区三区免费在线观看| 性欧美8khd高清极品| 欧美激情视频一区二区三区不卡| 777久久精品| 国产深夜男女无套内射| 久久亚洲欧美国产精品乐播| 国产主播第一页| 中文字幕亚洲情99在线| 亚洲精品66| www.一区二区.com| 成人免费看视频| 亚洲国产精品无码久久久| 在线a欧美视频| 自拍偷拍亚洲图片| 成人在线国产视频| 久久这里只有精品6| 一区二区小视频| 精品视频9999| 欧美成人一区在线观看| 人妻无码视频一区二区三区| 综合久久综合久久| 你懂的网站在线| 国产精品久久av| 欧美96在线丨欧| www.日本高清| 欧美日韩精品欧美日韩精品| 污污的网站在线看| 欧美人与物videos另类| 裸体一区二区三区| 懂色av.com| 在线日韩日本国产亚洲| 欧美三级一区| 中文字幕欧美人妻精品一区| 综合网在线视频| 欧美成人片在线| 亚洲自拍偷拍一区| 久久国产精品99国产| 亚洲精品电影院| 日韩国产精品一区| 电影一区中文字幕| 欧美在线观看成人| 亚洲精品成人悠悠色影视| 男人天堂综合| 91在线短视频| 日韩va亚洲va欧美va久久| 久久久99精品| 色播久久人人爽人人爽人人片视av| 蜜桃在线一区| 国产激情在线观看视频| 亚洲高清中文字幕|