日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux操作系统笔记——Shell变量

發布時間:2024/2/28 linux 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux操作系统笔记——Shell变量 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 一、Shell變量的基本概念
    • (一)創建Shell變量
    • (二)變量引導符($)
    • (三)只讀變量(readonly 命令)
    • (四)查看變量(set 命令)
    • (五)清除變量(unset 命令)
  • 二、Shell變量的分類
    • (一)環境變量
    • (二)系統變量
    • (三)用戶自定義變量
  • 三、Shell的引用符
    • (一)雙引號和單引號
    • (二)反引號
    • (三)花括號

一、Shell變量的基本概念

Shell中的變量分為三種,分別是環境變量(標準變量)、系統變量以及用戶自定義變量(局部變量),環境變量的值可被用戶修改,而系統變量是由系統預定義的,用戶只能引用但不能修改,另外用戶可自定義變量,即用戶自定義變量,可以對變量進行創建、賦值以及引用等。

(一)創建Shell變量

  • 用戶可自定義變量,直接在變量名稱后加上賦值符“=”即可,其中賦給變量的值可以是數值、變量、字符串或命令等等(若字符串中包含空格,則需用“”標注)。

例如自定義一個變量名稱為“value”,其值為1000,以及定義一個name變量,內容為字符串,如下:

[yyx@yyx12 ~]$ value=1000 [yyx@yyx12 ~]$ name="this is my linux,hello world"

如下,創建幾個變量A、B、C、D,通過echo命令輸出其值【echo命令用于輸出字符串或變量】:

[yyx@yyx12 ~]$ A=xiaoming [yyx@yyx12 ~]$ B="xiaoming" [yyx@yyx12 ~]$ C=hello world ... [yyx@yyx12 ~]$ D="hello world" [yyx@yyx12 ~]$ echo $A $B $C $D ...

在Linux終端中輸入命令,可看到變量A和變量B的輸出結果是一樣的,變量C中賦值的字符串中含有空格,但沒有通過雙引號包含,所以報錯,如下:

(二)變量引導符($)

  • 在變量前加符號“$”,即可取該變量的值。

例如通過echo命令輸出剛剛創建的value變量的值,如下:

[yyx@yyx12 ~]$ echo $value

在Linux終端中輸入命令:

例如創建兩個變量,其中變量B中包含變量A的值,如下:

[yyx@yyx12 ~]$ A=xiaoming [yyx@yyx12 ~]$ B="He is $A" [yyx@yyx12 ~]$ echo $A ... [yyx@yyx12 ~]$ echo $B ...

在Linux終端中輸入命令:

(三)只讀變量(readonly 命令)

  • 通過readonly 命令可以將一個變量變為只讀變量,readonly后直接跟變量的名稱,它的值不能被修改。

如下創建一個變量A并賦予其值,將其設為只讀變量,然后再修改該變量:

[yyx@yyx12 ~]$ A="This is my school" [yyx@yyx12 ~]$ readonly A [yyx@yyx12 ~]$ A="This is his school"

在Linux終端中輸入命令,發現會報錯:

(四)查看變量(set 命令)

  • 可以通過set 命令查看當前用戶的環境變量,它也會顯示用戶自定義的變量。

如下我們創建一個變量如何通過set命令查看該變量:

[yyx@yyx12 ~]$ A=1111111 [yyx@yyx12 ~]$ set

在Linux終端中輸入命令,可看到剛剛創建的變量:

(五)清除變量(unset 命令)

  • 清除變量可以通過unset 命令,該命令后跟變量的名稱(不用加上變量引導符$),當變量清除后其值為空。

例如創建一個變量后通過echo命令輸出該變量,然后在通過unset命令清除后再次輸出該變量:

[yyx@yyx12 ~]$ words="Linux is an operating system" [yyx@yyx12 ~]$ echo $words ... [yyx@yyx12 ~]$ unset words [yyx@yyx12 ~]$ echo $words ...

在Linux終端中輸入命令,可以看到執行unset命令后的words變量為空:

關于自定義變量還要注意一點,用戶創建的自定義變量,在退出終端后就會消失,如下:

關閉終端后,通過echo命令輸出該變量的值,可發現該變量為空:

二、Shell變量的分類

(一)環境變量

環境變量都被存放在/etc/profile文件中,如下通過cat命令查看/etc目錄下的profile文件:

[yyx@yyx12 ~]$ cat /etc/profile

在Linux終端中輸入命令:

環境變量有以下幾種:

  • HOME變量:用于標識當前用戶的主目錄,用戶創建的文件都保存在這個目錄以及其子目錄中。
  • 通過echo命令查看$HOME變量,如下:

    [yyx@yyx12 ~]$ echo $HOME

    在Linux終端中輸入命令:

  • PATH變量:搜索路徑,該變量的值是以冒號“:”隔開的多個目錄名稱,也就是一系列的目錄名稱,當運行一個命令(程序)時,就會從左到右地依次在這些目錄中查找命令,找到了后就直接執行;若沒有找到,則不會再去其他目錄中查找。
  • 通過echo命令輸出該變量,如下:

    [yyx@yyx12 ~]$ echo $PATH

    在Linux終端中輸入命令:

    這里為什么要說是搜索路徑,是因為/bin和/sbin存放的是二進制可執行文件,也就是存放的命令,如下:

    目錄名稱作用
    /bin存放二進制可執行文件 ,它存放著最經常使用的命令
    /sbin通常也是存放二進制可執行文件 ,它存放的是系統管理員使用的系統管理程序

    這里未能理解的小伙伴,可以看之前的文章,其中有講述到相關的目錄知識:
    Section 11 Linux操作系統簡介

  • TERM變量:用于指定當前用戶所用的終端類型。
  • 通過echo命令輸出該變量,如下:

    [yyx@yyx12 ~]$ echo $TERM

    在Linux終端中輸入命令,可看到xterm-256color,即支持啟用256色的Xterm:

  • IFS變量:字段分隔符,當輸入命令時,命令當中有選項參數,該變量定義其中的間隔。
  • 通過echo命令輸出該變量,如下:

    [yyx@yyx12 ~]$ echo $IFS

    在Linux終端中輸入命令,該變量的值通常為空:

  • SHELL變量:用于保存當前用戶的初始Shell的路徑名稱,保存的路徑是用戶登錄時所啟動的Shell。
  • 通過echo命令輸出該變量,如下:

    [yyx@yyx12 ~]$ echo $SHELL

    在Linux終端中輸入命令:

  • PS1變量該變量用于保存系統中的基本提示符,默認值為“$”。
  • 通過echo命令輸出該變量,如下:

    [yyx@yyx12 ~]$ echo $PS1

    在Linux終端中輸入命令:

    (二)系統變量

    Shell中的系統變量是系統定義并賦予初值的,用戶只能引用但不能修改其值,常用的Shell系統變量如下表:

    系統變量名稱作用
    $0當前Shell腳本的名稱,對應于命令行上輸入的腳本名
    $1,$2,……,$9分別表示命令行上第1-9個命令行參數
    $#命令行上的參數個數,不包括$0
    $*命令行上的所有參數
    $@同上
    $$當前進程的進程號
    $?上一條命令的退出狀態
    $!最后一個后臺進程的進程號

    (三)用戶自定義變量

    如何自定義變量在剛剛Shell變量的基本概念中已經講過,這里不再累述。

    • 在Unix/Linux操作系統中,我們規定允許使用未經定義和賦值的變量,當通過$引用這些變量時,它們的值為空。

    例如直接通過echo命令輸出一個未創建的變量filename的值(并未創建filename這個變量),如下:

    [yyx@yyx12 ~]$ echo $filename

    在Linux終端中輸入命令,可看到空了一行,顯示它是空的:

    三、Shell的引用符

    (一)雙引號和單引號


    前面已經講過,在一個雙引號中帶有變量引導符$,則表示它會取這個變量的值,即雙引號中可以有變量,同時也可以出現轉義字符。

    而單引號不一樣,在單引號中其他字符的原有特殊含義都被屏蔽了,它們顯示的是這些符號的基本含義,如下:

    [yyx@yyx12 ~]$ number=12345 [yyx@yyx12 ~]$ A="He is $number" [yyx@yyx12 ~]$ B='He is $number' [yyx@yyx12 ~]$ echo $A ... [yyx@yyx12 ~]$ echo $B ...

    在Linux終端中輸入命令,可看到B變量值中的單引號內的$number無效,它通過echo命令顯示的是原本的內容,其中的字符失去了其特殊含義:

    (二)反引號

    • 反引號用于將反引號其中的字符串當作命令來執行,即該命令執行的結果被直接保存在變量中。

    如下,pwd命令被包含在反引號內:

    [yyx@yyx12 ~]$ A=`pwd` [yyx@yyx12 ~]$ echo "The current working directory name is:$A"

    在Linux終端中輸入命令:

    (三)花括號

    花括號可以使變量與其后跟的其他字符隔開,如下由于要將變量A與后面字符串拼接起來,如果直接$Aer會直接輸出空值(由于變量Aer未定義,取的是變量Aer的值,而不是變量A的值),所以通過給變量加上花括號,從而使變量與后面的字符串分隔開:

    [yyx@yyx12 ~]$ A="he is a teach" [yyx@yyx12 ~]$ echo "${A}er" ... [yyx@yyx12 ~]$ echo "$Aer" ...

    在Linux終端中輸入命令:

    總結

    以上是生活随笔為你收集整理的Linux操作系统笔记——Shell变量的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。