CentOS 7 Shell腳本編程第三講 Shell 變量

上文思考問題中講到其餘方法查看系統變量。本文不徹底列舉如下幾種。java

#打印系統環境變量PATH
[root@promote ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@promote ~]# export
#其餘方法還有set 、declare等
[root@promote ~]# set

變量字面意思能夠理解爲變和量,分別表明變化和值(量)。使用賦值符號=。量推薦使用""。本文推薦=讀做賦值,不要讀做等於。其餘編程語言有==相似於等於。shell

變量能夠分爲全局變量和局部變量,顧名思義,能夠理解爲變量所在區域做用範圍不一樣,界限不是很明顯。編程

變量還能夠分爲系統環境變量和用戶自定義變量。系統環境變量對全部用戶生效,用戶環境變量對當前用戶生效。bash

系統變量用於定義Shell環境,保證SHell腳本正常輸出,肯定用戶名稱、命令所在目錄、終端類型、版本、主機名等衆多信息。查看系統變量方法已經介紹過(env等命令)。服務器

#演示常見幾個變量,更多信息使用env命令
[root@promote bin]# echo $HOME
/root
[root@promote bin]# echo $USER
root
[root@promote bin]# echo $UID
0
[root@promote bin]#

export 命令建立環境變量,通常臨時使用或者每次使用均須要建立。關閉終端後變量消失。舉例以下編程語言

[root@promote ~]# export name="tom"
[root@promote ~]# echo $name
tom
#退出用戶終端,XShell退出用戶終端須要從新鏈接服務器
[root@promote ~]# exit
登出
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(CentOS7 演示環境) at 15:49:05.

Type `help' to learn how to use Xshell prompt.
[C:\~]$ 

Connecting to 192.168.216.140:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

WARNING! The remote SSH server rejected X11 forwarding request.
Last login: Sun Mar 31 14:33:59 2019 from 192.168.216.1
[root@promote ~]# 
#name變量爲空,實際無輸出,顯示爲空行
[root@promote ~]# echo $name

[root@promote ~]#

#方法2 
[root@promote ~]# export name
[root@promote ~]# name="tom"
[root@promote ~]# echo $name
tom

#方法3
[root@promote ~]# name="tom";export name

#方法4
[root@promote ~]# declare -x name="bill"
[root@promote ~]# echo $name
bill
[root@promote ~]#

注意對比以上各類方法不一樣點。ui

變量名稱以字母和下劃線開頭,能夠接數字或字母,不要有含特殊符號。變量內容能夠以單引號或雙引號包圍,也能夠不使用,三者具備不一樣意義。code

Java 在Linux 系統中應用普遍,分爲Oracle JDK和OpenJDK等,本文以yum 安裝 OpenJDK 爲例演示用戶自定義變量建立過程。server

#查看文件名包含java軟件列表
[root@promote ~]# yum -y list java*
#安裝OpenJDK 1.8.0
[root@promote ~]# yum -y install java-1.8.0-openjdk*
#卸載OpenJDK 1.8.0,不執行該命令
[root@promote ~]# yum -y remove java-1.8.0-openjdk*
#查看Java版本
[root@promote ~]# java -version
openjdk version "1.8.0_201"
OpenJDK Runtime Environment (build 1.8.0_201-b09)
OpenJDK 64-Bit Server VM (build 25.201-b09, mixed mode)
[root@promote ~]# 
[root@promote bin]# which java
/usr/bin/java
[root@promote bin]# ls -l /usr/bin/java | grep "java"
lrwxrwxrwx 1 root root 22 3月  31 15:33 /usr/bin/java -> /etc/alternatives/java
[root@promote]# ls -l /etc/alternatives/ | grep -F "java"
[root@promote]# export JAVA_HOME=/etc/alternatives/

若是但願環境變量永久生效,須要將環境變量寫入用戶或系統配置文件。不一樣系統和用戶配置文件分別位於rem

#用戶變量,以root爲例,表示root用戶當前文件夾隱藏文件.bashrc
[root@promote ~]# ls -l .bashrc 
-rw-r--r--. 1 root root 176 12月 29 2013 .bashrc
#系統變量
[root@promote bin]# ls /etc/bashrc
/etc/bashrc
[root@promote bin]# ls /etc/profile
/etc/profile
[root@promote bin]#

Shell 解釋器調取配置文件具備優先級,優先調取/etc/bashrc文件,而後根據需求分別讀取其餘配置文件。

使配置文件生效使用 source 配置文件 命令。

取消變量使用unset命令。能夠取消用戶和系統環境變量。

[root@promote ~]# unset JAVA_HOME
[root@promote ~]# echo $USER
root
[root@promote ~]# unset $USER
[root@promote ~]# echo $USER
#name變量爲空,實際無輸出,顯示爲空行

下一講繼續介紹變量使用細節。敬請期待

相關文章
相關標籤/搜索