Linux/Unix運維之Shell變量知識進價與實踐

Linux UNIX 腳本語言 Bash 我不是程序猿 2017-06-06

Linux/Unix運維之Shell變量知識進價與實踐

想要很好的管理Linux系統,shell腳本語言是其必備的工具,Linux/Unix系統的底層及基礎應用軟件的核心大都涉及shell腳本的內容。社長常說,浪費讀者時間就是謀財害命,這次就從五個方面來解釋一下,shell中的五個特殊變量!沒有寫明怎麼用的,可以自己去嘗試一下,學起來會更有趣些!

一、Shell中的特殊位置參數變量

在shell中存在一些特殊且重要的變量,例如:$0、$1、$#,我們稱之為特殊位置參數變量。當我們需要從命令行、函數或腳本執行等處傳遞參數是,就需要在shell腳本中使用位置參數變量!下面介紹五個常用的位置參數變量!

$0:獲取當前執行的shell腳本的文件名,如果執行腳本包含了路徑,那麼就會包含腳本路徑!

$n:獲取當前執行的shell腳本的第n個參數值,n=1..9,當n為0時表示腳本的文件名;如果n大於9,則用大括號括起來,例如{10}!

$#:獲取當前執行的shell腳本後面接的參數的總個數!

$*:獲取當前shell腳本所有傳參的參數,不加引號和$@相同:如果給$*加上雙引號,則表示將所以的參數視為單個字符串,相當於”$1$2$3”

$@:獲取當前shell腳本所有傳參的參數,不加引號和$*相同;如果給$@加上雙引號,例如:”$@”,則表示將所有的參數視為不同的獨立字符串,相對於”$1””$2””...”。這是將多參數傳遞給其他程序的最佳方式,因為它會保留所有的內嵌在每個參數裡的任何空白。

二、Shell進程中的特殊狀態變量

主要涉及四個shell進程的特殊狀態變量說明

$?:獲取執行上一個指令的執行狀態返回值(0為成功,非零為失敗),最常用的變量。

$$:獲取當前執行的shell腳本的進程號(PID),瞭解即可

$!:獲取上一個在後臺工作進程的進程號(PID),瞭解即可

$_:獲取之執行的命令或腳本的最後一個參數,瞭解即可

三、Bash Shell內置變量命令

Bash Shell包含一些內置命令,這些內置命令在目錄列表裡是看不見的,他們由shell本身提供。常用的命令由:echo、eval、exec、read、shift、exit!

Echo:在屏幕上輸出信息

Eval:(eval Args),shell讀取參數args,並將他們組合成一個新的命令,然後執行!

Exec:在不創建新的子進程前提下,執行指定的命令,當該命令執行完畢後,該進程也就壽終正寢了!

Read:從標準輸入讀取字符串等信息,傳給shell程序內部定義的變量!

Shift:命令格式”shift-Shift positional parameters”,可以改變位置參數變量,每執行一次,位置參數$#減一,直到減為0

Exit:命令格式”exit-Exit the shell”,退出shell程序。

四、Shell變量子串知識

這段知識會在之後做單獨發文記錄!主要是用來做批處理的,本文就不做介紹了!

五、Shell特殊擴展變量的知識

這段知識會在之後做單獨發文記錄!主要是用來做批處理的,本文就不做介紹了!

最後偷懶留倆個知識點,之前學習,別人給什麼就吃什麼,發現後來很多東西,說忘就忘了,記得的,唯獨自己研究使用的東西!下一篇會對“Shell特殊擴展變量的知識”做詳細描述!同時也會附上水猿學習的心得,能不能事半功倍,你說了算!

相關推薦

推薦中...