日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

git用戶自定義變量查看修改及調用教程詳解_其它綜合

作者:繁華似錦Fighting ? 更新時間: 2022-06-22 編程語言

1、變量定義

變量正確定義。

格式:變量名="變量值"

# 兩種方式都可以
[root@localhost ~]# name=zhenniubi
[root@localhost ~]# name="zhen niubi"

變量名不能用數字開頭。

[root@localhost ~]# 2name="zhen niubi"
-bash:2name=zhen niubi:command not found

等號左右兩側不能有空格。

[root@localhost ~]# name = "zhenniubi"
-bash:name:command not found

變量的值如果有空格,必須用引號包含。

[root@localhost ~]# name=zhen niubi
-bash:niubi:command not found

2、變量調用

調用變量用$符號。

#定義變量name
[root@localhost ~ ] # name="zhen niubi"
#輸出變量name的值
[root@localhost ~ ] # echo $name
zhen niubi

3、變量的修改

Shell中變量值的修改,是以覆蓋的形式完成的,以后最后一次對該變量的賦值為準。

#之前定義好的變量
[root@localhost ~]# name=ailin
[root@localhost ~]# 
[root@localhost ~]# echo $name
ailin
#修改后的變量值
[root@localhost ~]# name=cangls
[root@localhost ~]# 
[root@localhost ~]# echo $name
cangls

4、查看變量

命令格式:

[root@localhost ~]# set [選項]

選項:

-u:如果設定此選項,調用未聲明變量時會報錯(默認無任何提示)(很常用)。

-x:如果設定此選項,在命令執行之前,會把命令先輸出一次。(不建議使用)

(1)-u選項說明:

在當前系統下從沒有定義過age字段(變量),直接輸出age變量的值,如下圖可以看到沒有任何值。

如果我給age字段定義一個空值,在查看age字段,如下圖,可以看到依舊沒有任何輸出。

那么綜上所述,查看一個變量時沒有任何輸出,是有兩種可能的。一種是age變量不存在,一種是age變量的值為空。在Java中,變量沒有被定義和變量值為空完全是兩個不同的概念,在Shell中也一樣,我們一定要對此進行區分。

如果我執行了set -u命令,就可以對上面兩種情況進行區分。

#直接執行`set -u`命令
[root@localhost ~ ] # set -u
#輸出一個未定義變量,顯示addr變量不存在。
[root@localhost ~]# echo $addr
-bash: addr: unbound variable
#給addr變量定義一個空值,
#在查看變量,可以看到變量的值為空。
[root@localhost ~]# addr=""
[root@localhost ~]# echo $addr
[root@localhost ~]#

注意:在命令行中執行set -u命令,這種方式是臨時生效的,需要永久生效,就需要寫入環境變量配置文件中。(如何配置,看以后的環境變量配置內容)

總結:當設置了-u選項后,如果調用沒有設定的變量會有報錯。默認是沒有在何輸出的。

(2)-x選項說明:

就字面意思,如果設定了-x選項,會在每個命令執行之前,先把命令輸出一次

[root@localhost ~ ] # set -x
[root@localhost ~ ] # ls
+ ls --color=auto 
anaconda-ks.cfg install.log install.log.syslog sh tdir test testfile

如果不新登陸系統,會一直這樣,因為上面說了,在命令行中直接執行是臨時生效的。并不推薦執行此選項,命令結果看起來很亂。

(3)set命令說明:

直接使用set命令,不加任何選項,會查詢系統中所有的變量,包含用戶自定義變量和環境變量。(其實是一部分)

系統的另一部分變量,用env命令來查看。兩個命令看到的變量會有重疊,但是env命令查看不到自定義變量的。(查了一下,網上介紹的也很模糊,就是兩個命令就能夠查到系統中全部的變量,set多用于查看系統的用戶自定義變量,env多用于查詢系統的環境變量。)

小結:

set:用來顯示當前Shell的變量,包括當前用戶的變量。
每個Shell有自己特有的變量,這個和用戶變量是不同的,當前用戶變量和你用什么Shell無關,不管你用什么Shell,每個Shell都有自定義的Shell,也就是自己Shell的變量。這種變量不同Shell是不同的,這些變量只有set才會顯示,是bash特有的。這種變量也只對本Shell有效, 不能傳遞給子Shell。(就相當于Java中的局部變量)。

env:用來顯示環境變量,也叫顯示當前用戶的變量,環境變量可傳遞給子Shell。(就相當于Java中的全局變量)

5、變量刪除

[root@localhost ~]# unset 變量名

不需要在變量名前加$符號,只有在調用變量值的時候需要在變量名前加$符號。

原文鏈接:https://www.cnblogs.com/liuyuelinfighting/p/16170883.html

欄目分類
最近更新