最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一問弄懂Shell變量四大分類

 更新時間:2023年05月09日 09:41:37   作者:柒號華仔  
Shell變量分為環(huán)境變量、本地變量、位置參數(shù)變量和特殊變量,本文就詳細的介紹一下這四種變量的具體使用,具有一定的參考,感興趣的可以了解一下

上一篇我們講述了Shell的基本概念和運行方式,對Shell有了整體了解。如果說Shell是一棟大廈,那么變量便是一塊塊磚,是基礎(chǔ)元素。Shell變量比可編譯語言的變量更為復雜,種類更多,靈活性非常大,因此需要全面細致的把握。

Shell變量

什么是變量

變量是程序設(shè)計語言中的一個可以變化的量,當然,可以變化的是變量的值。變量在幾乎所有的程序設(shè)計語言中都有定義,并且其涵義也大同小異。

從本質(zhì)上講,變量就是在程序中保存用戶數(shù)據(jù)的一塊內(nèi)存空間,而變量名就是這塊內(nèi)存空間的地址。 在程序的執(zhí)行過程中,保存數(shù)據(jù)的內(nèi)存空間的內(nèi)容可能會不斷地發(fā)生變化,但是,代表內(nèi)存地址的變量名卻保持不變。 由于變量的值是在計算機的內(nèi)存中,所以當計算機被重新啟動后,變量的值將會丟失。因此,對于需要長久保存的數(shù)據(jù),應該寫入到磁盤中,避免存儲在變量中。

shell變量定義

shell變量是一種用來存放數(shù)據(jù)的編程元素,它可以幫助我們簡化很多工作 。shell變量的值可以是數(shù)字、字符串、文件名、命令的輸出等。shell變量可以在shell腳本中使用,也可以在命令行中使用,可以被賦值、修改、刪除、導出等。

shell變量賦值是使用等號(=)將變量的名稱和變量的值連接起來,例如:name=Tom。注意,等號兩邊不能有空格,否則會出錯。shell變量的賦值可以在命令行中進行,也可以在shell腳本中進行。shell變量的賦值可以覆蓋之前的賦值,例如:name=Tom; name=Jerry。

shell變量使用時在變量的名稱前加上美元符號$,例如:echo $name。這樣就可以打印出變量的值。shell變量的使用可以在命令行中進行,也可以在shell腳本中進行。shell變量的使用可以和其他命令或字符串組合,例如:echo “My name is $name”。

shell變量分類

Shell變量可以分為以下幾種類型:

  • 環(huán)境變量(Environment Variable):環(huán)境變量是在Shell啟動時由操作系統(tǒng)設(shè)置的,它們對于所有的Shell和Shell執(zhí)行的程序都是可見的。一些常見的環(huán)境變量包括PATH、HOME、USER等。
  • 本地變量(Local Variable):本地變量是由Shell程序定義的,僅在當前Shell會話中可見,對于其他的Shell和Shell執(zhí)行的程序是不可見的。本地變量可以通過=符號來定義和賦值,例如myvar="hello"。
  • 位置參數(shù)變量(Positional Parameter Variable):位置參數(shù)變量是用來存儲Shell腳本的命令行參數(shù)的,它們包括$1、$2、$3等。例如,如果我們運行一個Shell腳本并且傳遞了兩個參數(shù),那么這兩個參數(shù)會被分別賦值給$1$2。
  • 特殊變量(Special Variable):特殊變量是由Shell程序預定義的,用于存儲一些特定的值或狀態(tài)。例如,$? 用于存儲上一個命令的返回值,$$用于存儲當前Shell進程的PID,$IFS用于存儲當前Shell的字段分隔符等。

環(huán)境變量

常見變量

在Linux Shell中,有許多預定義的環(huán)境變量。以下是一些常見的環(huán)境變量及其用途:

  • PATH:用于定義可執(zhí)行文件的搜索路徑。當我們輸入一個命令時,Shell會在PATH變量指定的路徑中搜索該命令的可執(zhí)行文件。例如:
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
  • HOME:用于定義當前用戶的主目錄路徑。該變量通常用于Shell腳本中,以便訪問用戶的主目錄下的文件和目錄。例如:
$ echo $HOME
/home/myuser
  • USER:用于定義當前登錄用戶的用戶名。該變量通常用于Shell腳本中,以便獲取當前腳本的執(zhí)行者。例如:
$ echo $USER
myuser
  • PS1:用于定義Shell提示符的格式。該變量通常用于自定義Shell提示符的外觀和行為。例如:
$ export PS1="[\e[32m]\u@\h:[\e[34m]\w[\e[0m]\$ "

定義一個帶有顏色的Shell提示符,其中u代表用戶名,h代表主機名,w代表當前工作目錄。

  • LANG:用于定義當前系統(tǒng)的默認語言。該變量通常用于控制程序的本地化和國際化。例如:
$ echo $LANG
en_US.UTF-8
  • PWD:當前工作目錄。例如:
$ echo $PWD
/home/myuser

變量引用

在Shell腳本中,我們可以使用$符號來引用環(huán)境變量。例如:

#!/bin/bash
echo "My home directory is $HOME"
echo "My username is $USER"
echo "My PATH is $PATH"
echo "The value of MYVAR is $MYVAR"

執(zhí)行后輸出當前用戶的主目錄、用戶名、PATH變量和MYVAR變量的值。

變量賦值

使用export命令可以將環(huán)境變量設(shè)置為全局變量,這樣它們就可以在當前Shell會話中的所有進程中使用。例如:

$ export MYVAR="hello"

定義一個名為MYVAR的環(huán)境變量,并將其值設(shè)為hello。

同時,環(huán)境變量是可以重新賦值的,我們可以使用export命令將一個本地變量賦值給一個環(huán)境變量,或者直接在當前Shell會話中使用export命令重新賦值一個已經(jīng)存在的環(huán)境變量。

例如,假設(shè)我們有一個名為MYVAR的環(huán)境變量,其當前值為hello。我們可以使用以下命令將一個本地變量myvar賦值給MYVAR環(huán)境變量:

$ myvar="world"
$ export MYVAR=$myvar

把本地變量myvar的值world賦值給環(huán)境變量MYVAR,此時MYVAR的值為world。

同樣地,我們也可以直接在當前Shell會話中使用export命令重新賦值一個已經(jīng)存在的環(huán)境變量:

$ export MYVAR="world"

重新將MYVAR的值設(shè)置為world。

需要注意的是,一旦我們重新賦值了一個環(huán)境變量,該變量的新值將在當前Shell會話中生效,同時也會影響到當前Shell會話中的所有子進程和后續(xù)的Shell會話。因此,如果我們需要在一個Shell會話中重新賦值一個環(huán)境變量,需要謹慎考慮其可能會對系統(tǒng)中其他程序的運行產(chǎn)生的影響。

本地變量

變量定義

本地變量可以使用=符號進行定義和賦值。例如:

$ myvar="hello"

定義一個名為myvar的本地變量,并將其值設(shè)為hello。我們可以使用echo命令來輸出該變量的值:

$ echo $myvar
hello

本地變量只在當前Shell會話中可見,對于其他的Shell和Shell執(zhí)行的程序是不可見的。

例如,如果我們在一個Shell會話中定義了一個本地變量:

$ myvar="hello"

那么在另一個Shell會話中,該變量是不存在的:

$ echo $myvar

變量引用

在Shell腳本中,我們可以使用$符號來引用本地變量。例如:

#!/bin/bash
myvar="hello"
echo "The value of myvar is $myvar"

輸出The value of myvar is hello。

變量賦值

本地變量可以被重新賦值,例如:

$ myvar="hello"
$ echo $myvar
hello
$ myvar="world"
$ echo $myvar
world
$ unset myvar
$ echo $myvar

定義一個名為myvar的本地變量,并將其值設(shè)為hello,然后將其重新賦值為world,最后使用unset命令刪除該變量。

變量刪除

shell變量的刪除的方法是使用unset命令,例如:unset name,這樣就可以刪除變量的名稱和變量的值。shell變量的刪除可以在命令行中進行,也可以在shell腳本中進行,刪除可以釋放內(nèi)存空間,避免變量名沖突。

unset命令語法:unset [選項] [name ...]

選項含義
-f僅刪除函數(shù)
-v僅刪除變量(不包括只讀變量)
-n刪除具有引用屬性的變量名(如果該選項存在)

如果不加選項參數(shù),那么既可以刪除變量,也可以刪除函數(shù)。

需要注意的是,unset命令不能刪除只讀變量。

位置參數(shù)變量

變量定義

在Shell編程中,位置參數(shù)變量用于獲取腳本或函數(shù)的輸入?yún)?shù)。當我們執(zhí)行一個Shell腳本或函數(shù)時,我們可以將參數(shù)傳遞給該腳本或函數(shù),并在其中使用位置參數(shù)變量來獲取這些參數(shù)的值。

常見位置參數(shù)變量:

  • $0:當前腳本或函數(shù)的名稱。
  • $1、$2$3、...:當前腳本或函數(shù)的第一個、第二個、第三個參數(shù),以此類推。
  • $#:當前腳本或函數(shù)的參數(shù)個數(shù)。
  • $*:當前腳本或函數(shù)的所有參數(shù),作為一個字符串。
  • $@:當前腳本或函數(shù)的所有參數(shù),作為一個數(shù)組。

變量引用

下面是一個使用位置參數(shù)變量的示例腳本:

#!/bin/bash
echo "The name of this script is: $0"
echo "The first parameter is: $1"
echo "The second parameter is: $2"
echo "The third parameter is: $3"
echo "The total number of parameters is: $#"
echo "All the parameters are: $*"
echo "All the parameters are: $@"

當我們執(zhí)行該腳本并傳遞三個參數(shù)時,輸出將如下所示:

$ ./script.sh hello world 123
The name of this script is: ./script.sh
The first parameter is: hello
The second parameter is: world
The third parameter is: 123
The total number of parameters is: 3
All the parameters are: hello world 123
All the parameters are: hello world 123

我們可以看到,使用位置參數(shù)變量可以輕松地獲取腳本或函數(shù)的輸入?yún)?shù),并對其進行處理和操作。位置參數(shù)變量適用于編寫需要處理大量輸入?yún)?shù)的腳本。

特殊變量

變量定義

在Shell編程中,有很多特殊變量可以用來獲取各種系統(tǒng)信息和腳本信息,使用特殊變量能夠簡化代碼復雜度,減少使用復雜代碼來完成固定任務(wù)的情況,提升運行效率。

常見的特殊變量:

  • $$:當前腳本或進程的進程ID。
  • $?:上一個命令或腳本的退出狀態(tài)碼。
  • $!:上一個后臺進程的進程ID。
  • $USER:當前用戶的用戶名。
  • $HOME:當前用戶的主目錄路徑。
  • $PATH:當前系統(tǒng)的執(zhí)行路徑。
  • $PWD:當前工作目錄路徑。
  • $SHELL:當前使用的Shell程序路徑。
  • $RANDOM:一個0到32767之間的隨機數(shù)。
  • $LINENO:當前腳本的行號。
  • $IFS:當前腳本的字段分隔符。
  • $PS1:Shell提示符的格式。
  • $PS2:Shell續(xù)行提示符的格式。

變量引用

下面是一個使用特殊變量的示例腳本:

#!/bin/bash
?
echo "The process ID of this script is: $$"
echo "The exit status of the last command is: $?"
echo "The process ID of the last background job is: $!"
echo "The current user is: $USER"
echo "The home directory of the current user is: $HOME"
echo "The current PATH is: $PATH"
echo "The current working directory is: $PWD"
echo "The current shell is: $SHELL"
echo "A random number between 0 and 32767: $RANDOM"
echo "The current line number is: $LINENO"
echo "The current field separator is: $IFS"

當我們執(zhí)行該腳本時,輸出將如下所示:

The process ID of this script is: 1234
The exit status of the last command is: 0
The process ID of the last background job is: 
The current user is: username
The home directory of the current user is: /home/username
The current PATH is: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
The current working directory is: /home/username
The current shell is: /bin/bash
A random number between 0 and 32767: 2373
The current line number is: 7
The current field separator is:  

通過示例可以看到,使用特殊變量可以輕松地獲取各種系統(tǒng)信息,并在腳本中使用它們來進行處理和操作。在實際編程中,特殊變量能夠有效簡化代碼,提高執(zhí)行效率,特別是在需要獲取系統(tǒng)信息或處理系統(tǒng)事件的腳本中。

總結(jié)

Shell變量分為環(huán)境變量、本地變量、位置參數(shù)變量和特殊變量,實際使用中,四者有一定的重疊性。Shell變量是用好Shell編程的基礎(chǔ),靈活恰當?shù)氖褂米兞靠梢院喕_本復雜度,提高腳本運行效率和可讀性。

到此這篇關(guān)于一問弄懂Shell變量四大分類的文章就介紹到這了,更多相關(guān)shell變量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Linux 文件查找打包壓縮及解壓命令詳解

    Linux 文件查找打包壓縮及解壓命令詳解

    這篇文章主要介紹了Linux 文件查找,打包壓縮及解壓,文件查找和壓縮解壓是Linux系統(tǒng)中非常常見的操作,掌握了相關(guān)命令和技巧,可以提高我們的工作效率和文件管理能力,需要的朋友可以參考下
    2023-11-11
  • 詳解Linux 操作系統(tǒng)下安裝rpm包的方法步驟

    詳解Linux 操作系統(tǒng)下安裝rpm包的方法步驟

    這篇文章主要介紹了詳解Linux 操作系統(tǒng)下安裝rpm包的方法步驟的相關(guān)資料,需要的朋友可以參考下
    2015-11-11
  • linux下監(jiān)視進程 崩潰掛掉后自動重啟的shell腳本

    linux下監(jiān)視進程 崩潰掛掉后自動重啟的shell腳本

    如何保證服務(wù)一直運行?如何保證即使服務(wù)掛掉了也能自動重啟?在寫服務(wù)程序時經(jīng)常會碰到這樣的問題。在Linux系統(tǒng)中,強大的shell就可以很靈活的處理這樣的事務(wù)
    2013-06-06
  • Linux常用高頻命令

    Linux常用高頻命令

    這篇文章介紹了Linux常用的高頻命令,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • php在linux中可能用到的命令(推薦)

    php在linux中可能用到的命令(推薦)

    下面小編就為大家?guī)硪黄猵hp在linux中可能用到的命令(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • 深入理解Linux中的grep命令

    深入理解Linux中的grep命令

    大家都知道grep是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹配的行打印出來。這篇文章給大家詳細的介紹了Linux中的grep命令,相信對大家的學習和理解很有幫助,有需要的朋友們可以參考借鑒,感興趣下面來一起學習學習吧。
    2016-11-11
  • Shell位置變量&預定義變量的實現(xiàn)

    Shell位置變量&預定義變量的實現(xiàn)

    Shell位置變量和預定義變量是Shell腳本編程中非常重要的概念,本文主要介紹了Shell位置變量&預定義變量的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • 淺談ctrl+c,ctrl+d,ctrl+z在linux中的意義

    淺談ctrl+c,ctrl+d,ctrl+z在linux中的意義

    下面小編就為大家?guī)硪黄獪\談ctrl+c,ctrl+d,ctrl+z在linux中的意義。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • Linux系統(tǒng)診斷之內(nèi)存基礎(chǔ)深入詳解

    Linux系統(tǒng)診斷之內(nèi)存基礎(chǔ)深入詳解

    這篇文章主要介紹了Linux系統(tǒng)診斷之內(nèi)存基礎(chǔ)深入詳解,雖然是基礎(chǔ)但是列舉的很詳細,有感興趣的同學可以研究下
    2021-03-03
  • shell腳本實現(xiàn)快速生成xml格式sitemap實例分享

    shell腳本實現(xiàn)快速生成xml格式sitemap實例分享

    這篇文章主要介紹了shell腳本實現(xiàn)快速生成xml格式sitemap實例分享,只是本文的腳本首先需要一個創(chuàng)建好的URL集合文件,也就是數(shù)據(jù)源才可以生成,需要的朋友可以參考下
    2014-12-12

最新評論

手机| 句容市| 广饶县| 偏关县| 赤壁市| 平谷区| 黑龙江省| 惠州市| 茌平县| 柳州市| 涡阳县| 昌平区| 大理市| 云安县| 聂荣县| 称多县| 新宁县| 会同县| 镇安县| 西林县| 邵武市| 托克托县| 林口县| 吉首市| 含山县| 商水县| 西吉县| 南陵县| 临朐县| 蒲江县| 句容市| 康平县| 武穴市| 仲巴县| 滨海县| 灵璧县| 常宁市| 弋阳县| 霍州市| 五常市| 乌鲁木齐县|