1. 程式人生 > >Linux變量

Linux變量

linux bash shell

變量的取用: echo (兩種方式

[root@centos7 ~]#echo $HOME 變量名稱前加$

[root@centos7 ~]#echo ${HOME} ${變量}

變量的設定規則

變量與變量內容以一個等號『=』來連結

[root@centos7 ~]#name=wang

等號兩邊不能直接接空格符

[root@centos7 ~]#name= wang 會報錯

[root@centos7 ~]#name=wang xixi 會報錯

變量名稱只能是英文字母與數字,但是開頭字符不能是數字

[root@centos7 ~]#

4name=wang

變量內容若有空格符可使用雙引號『"』或單引號『'』將變量內容結合起來

[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變量