Linux變量
[root@centos7 ~]#echo $HOME 變量名稱前加$
[root@centos7 ~]#echo ${HOME} ${變量}
▓變量的設定規則
●變量與變量內容以一個等號『=』來連結
[root@centos7 ~]#name=wang
●等號兩邊不能直接接空格符
[root@centos7 ~]#name= wang 會報錯
[root@centos7 ~]#name=wang xixi 會報錯
●變量名稱只能是英文字母與數字,但是開頭字符不能是數字
[root@centos7 ~]#
●變量內容若有空格符可使用雙引號『"』或單引號『'』將變量內容結合起來
[root@centos7 ~]#name="wang xixi"
●可用轉義字符『 \ 』將特殊符號(如 [Enter], $, \, 空格符, '等)變成一般字符
[root@centos7 ~]#name=wang\ xixi
●命令引用:name=`COMMAND` name=$(COMMAND)
[root@centos7 ~]#version=$(uname -r) $(指 令)
[root@centos7 ~]#version=`uname -r` `
●變量引用:name="$USER" ${name}
[root@centos7 ~]#name="$USER" "$變量名稱"
[root@centos7 ~]#name=${USER} ${變量}
雙引號"":弱引用,其中的變量引用會被替換為變量值
[root@centos7 ~]#name="$USER"
[root@centos7 ~]#echo $name
root
單引號'':強引用,其中的變量引用不會被替換為變量值,而保持原字符串
[root@centos7 ~]#name='$USER'
[root@centos7 ~]#echo $name
$USER
●若該變量需要在其他子程序執行,則需要以 export 來使變量變成環境變量
[root@centos7 ~]#name=wang 定義變量並賦值
[root@centos7 ~]#export name 聲明為環境變量
[root@centos7 ~]#bash 打開子進程
[root@centos7 ~]#echo $name 可以執行
wang
●通常大寫字符為系統默認變量,自行設定變量可以使用小寫字符,方便判斷 (純粹依照使用者興趣與嗜好) ;
▓取消變量的方法為使用 unset
[root@centos7 ~]#unset name
▓變量聲明、賦值: export name=VALUE
declare -x name=VALUE
▓set 觀察所有變量 (含環境變量與自定義變量)及一些函數
[root@centos6 app]#set
[root@centos6 app]#set|less 內容太多,分頁顯示
▓查看所有的環境變量 env 與printenv與 export 與declare -x
[root@centos6 app]#declare -x
[root@centos6 app]#export
[root@centos6 app]#env
[root@centos6 app]#printenv
▓“環境變量”與“bash的操作環境”意思不太一樣,舉例來說,PS1只是普通變量,並不是環境變量,但是PS1會影響到bash的接口(提示符)
▓bash內建的環境變量:
●PATH 執行文件搜尋的路徑
●SHELL 當前環境使用的shell ,Linux 預設使用 /bin/bash
●USER 使用者名稱
●UID
●HOME 用戶的家目錄
●PWD 目前用戶所在的工作目
●SHLVL 查看shell的嵌套深度
[root@centos6 app]#echo $SHLVL
1
[root@centos6 app]#bash
[root@centos6 app]#echo $SHLVL
2
●LANG 語系數據
●MAIL 使用mail這個指令在收信時,系統會去讀取的郵件信箱文件 (mailbox)
●HOSTNAME 主機名
●HISTSIZE 歷史命令最大記錄多少筆
__ (下劃線)上一次使用的指令的最後一個參數(或指令本身)
[root@centos6 app]#echo $_ 類似於!$
[root@centos6 app]#ll /etc/issue
[root@centos6 app]#cat $_ 是變量,腳本中使用
[root@centos6 app]#ll /etc/issue
[root@centos6 app]#cat !$ shell的寫法
▓只讀變量:只能聲明,但不能修改和刪除
●聲明只讀變量: readonly name
declare -r name
[root@centos6 app]#readonly pi=3.14 直接寫
[root@centos6 app]#pi=3.14;declare -r pi 分開寫
●查看系統中定義的所有只讀變量: readonly –p
declare -r
[root@centos6 app]#readonly -p
[root@centos6 app]#declare -r
●只讀變量不能用unset刪除,程序執行完或exit退出即結束
Linux變量