shell中的變數

2021-09-29 20:01:35 字數 2869 閱讀 7322

shell中預設的變數都是大寫的。

變數就是使用乙個較簡單的字串來替代某些具有特殊意義的設定以及資料,可以使用echo命令顯示變數的值。

echo

$pwd

echo

$path

另外可以使用env命令列出全部系統預設的系統環境變數,不同登入的使用者列出的環境變數也不一樣。

常見的環境變數有:

path : 決定shell將到哪些目錄中尋找命令或程式;

home : 當前使用者的主目錄;

histsize : 歷史記錄數;

logname : 當前使用者的登入名;

hostname : 主機的名稱;

shell : 當前使用者的shell型別;

lang : 與語言相關的環境變數

mail : 當前使用者的郵件存放目錄;

pwd: 當前目錄;

env命令顯示的變數只是環境變數,可以使用set命令把系統預設的全部變數(包括使用者自定義的變數)都顯示出來。

使用者自定義變數要注意的事項

1.等號前後不能出現空格,否則會出現報錯;

等號前面是變數名,等號後面是變數的內容

$是引用符號,即引用當前變數

例如,定義以下變數

name=banana

echo

$name

2.變數名只能由英文、數字以及下劃線組成,並且不能以數字開頭;

3.當變數內容帶有特殊符號(如空格)時,需要加上單引號,⚠️若變數內容本身帶有單引號,此時需要使用雙引號;

name=

var=

"your's"

4.當變數內容中需要用到其他命令執行結果則可以使用反引號;

myname=

`pwd

`echo

$myname

這段命令執行的結果就是當前路徑。

5.變數內容可以累加其他變數的內容,需要加雙引號,⚠️不能使用單引號;

name=

"$logname"banana

單引號與雙引號的區別:用雙引號時不會取消掉裡面出現的特殊字元的本身作用,如$,而使用單引號裡面的特殊字元全部失去它本身的作用。即雙引號支援轉義,例如:

但是,當變數**現』\t』 '\n』時,若想在使用echo輸出時實現這些字元的作用,可以使用-e選項,例如:

注意⚠️:echo $a 和echo "$a"都可以表示變數的輸出,但使用雙引號是更嚴謹的方式。另外,如果變數是多個字串串聯起來的,需要使用{}將變數內容括起來,避免與後面的其他字元混淆。

6.在shell中,使用者自定義的變數只能在當前shell中生效,屬於區域性變數,若想要設定的變數一直生效,有以下兩種情況:

1)要想系統內所有使用者登入後都能使用該變數

需要在/etc/profile檔案最末行加入 「export myvar=amazing」 然後執行」source /etc/profile」就可以生效了。

2)只想讓當前使用者使用該變數

需要在使用者主目錄下的.bashrc檔案最後一行加入「export myvar=amazing」 ,然後執行」source .bashrc」就可以生效了。

7.若在當前shell中執行bash命令,則會進入乙個新的shell,這個shell就是原來shell的子shell,可以使用pstree指令檢視。

在父shell中設定的變數,在子shell中不生效,若需要變數在子shell中生效,需要使用export指令,即在父shell中設定變數var=123後,執行export var命令,若export後面不加任何變數名,則父shell中所有的變數在子shell中都能生效。

8.若想取消變數名,輸入unset myvar

shell中$+特殊符號的意義

在linux中,變數一般儲存在**呢?

系統級別的配置檔案有以下兩個:

1)/etc/profile: 這個檔案預設了幾個重要的變數,如path、logname、inputrc、hostname等

2)/etc/bashrc: 這個檔案主要預設umask以及ps1,ps1就是我們在敲命令時,前面那串字元;

\h就是主機名,\u就是使用者名稱,\w就是當前目錄,$就是前面那個$。

個人環境變數的配置檔案都是隱藏檔案,有:

1).bash_profile:定義了使用者的個性化路徑與環境變數的檔名稱。每個使用者都可以使用該檔案輸入專用於自己使用的shell資訊,當使用者登入時,該檔案僅執行一次;

2).bashrc: 該檔案包含專用於使用者的shell的bash資訊,當登入以及開啟新的shell時,該檔案被讀取。

3).bash_history:記錄歷史命令

4).bash_logout: 當退出shell時,會執行該檔案,可以把一些清理工作放在這個檔案中

shell中的變數

只寫了部分常用變數 2018.5.14 環境變數 隨不同環境變化 user pwd path pid root 下 user root quguanwen下 user quguanwen 預定義變數 命令返回值檢視狀態 列出所有位置變數的值 一共載入多少位置變數 位置變數 1 2 3 x 執行指令碼...

shell中的變數

echo 123 passwd stdin yee 一次性給使用者加密碼 變數的定義 變數即在程式執行過程中它的值是允許改變的量 變數是用一串固定的字元來標示不固定的值的一種方法 變數是一種使用方便的佔位符,用於引用計算機記憶體位址,該地 址可以儲存 script 執行時可更改的程式資訊 在 she...

shell中的變數

變數名的規範 字元的轉譯及變數的宣告 變數值的傳遞 read 命令的別名 用命令結果做變數 函式變數與環境 etc bashrc shell的配置環境 etc profile 使用者環境 env 檢視環境中所有變數變數即在程式執行過程中它的值是允許改變的量 變數是用一串固定的字元來標示不固定的值的一...