1. 程式人生 > >[CentOS 7系列]變量

[CentOS 7系列]變量

變量

“變量是一種使用方便的占位符,用於引用計算機內存地址,該地址可以存儲Script運行時可更改的程序信息。使用變量並不需要了解變量在計算機內存中的地址,只要通過變量名引用變量就可以查看或更改變量的值。”舉個例子,當用戶上傳一個值,這個值傳遞給程序。這個值在程序運行中被多次調用賦值。在系統做升級時,維護和調試升級就要在每次調用賦值的地方修改。這時,如果將用戶上傳的值定義為一個變量。系統需要賦值時,就去調用這個變量。在以後的維護升級時,只需要更改變量的值即可。


1、系統變量

Shell變量可分為兩類:局部變量和環境變量。局部變量只在創建它們的shell中可用。而環境變量則可以在創建它們的shell及其派生出來的任意子進程中使用。有些變量是用戶創建的,其他的則是專用shell變量。變量名必須以字母或下劃線字符開頭。其余的字符可以是字母、數字(0~9)或下劃線字符。任何其他的字符都標誌著變量名的終止。名字是大小寫敏感的。給變量賦值時,等號周圍不能有任何空白符。為了給變量賦空值,可以在等號後跟一個換行符。用set命令可以查看所有的變量,unset abc命令可以清除變量abc,abc相當於沒有定義過。readonly abc可以把abc變為只讀變量,定義之後不能對abc進行任何更改。對shell變量的引用方式很多,用這些方式可以方便的獲取shell變量的值,變量值的長度,變量的一個字串,變量被部分替換後的值等等。

[[email protected] ~]# echo $SSH_TTY       ##查看自己在哪個TTY下面
/dev/pts/1
[[email protected] ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[[email protected] ~]# echo $HOME
/root
[[email protected] ~]# echo $PWD
/root
[[email protected] ~]# echo $LOGNAME
root
[[email protected]
/* */ ~]# env ##系統常用變量 XDG_SESSION_ID=13 HOSTNAME=server01 ...... MAIL=/var/spool/mail/root PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin PWD=/root LANG=zh_CN.UTF-8 SELINUX_LEVEL_REQUESTED= HISTCONTROL=ignoredups SHLVL=1 HOME=/root LOGNAME=root ...... [[email protected] ~]# set ##包括系統變量和用戶自定義變量 BASH=/bin/bash ...... HISTCONTROL=ignoredups HISTFILE=/root/.bash_history HISTFILESIZE=1000 HISTSIZE=1000 HOME=/root HOSTNAME=server01 HOSTTYPE=x86_64 ...... PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin PIPESTATUS=([0]="0") PPID=30083 PS1=‘[\u@\h \W]\$ ‘ PS2=‘> ‘ ...... [[email protected]
/* */ ~]# [[email protected] ~]# abc=51cto.com ##設置自定義的變量 [[email protected] ~]# set | grep abc ##查詢自定義變量中的abc abc=51cto.com [[email protected] ~]# unset abc ##取消自定義的變量 [[email protected] ~]# set | grep abc [[email protected] ~]# [[email protected] ~]# a=‘$a$b‘ ##變量值有特殊符號時需要用單引號括起來 [[email protected] ~]# echo $a $a$b [[email protected] ~]# a=‘a$b‘ [[email protected] ~]# echo $a a$b [[email protected] ~]# c=1;d=2 [[email protected] ~]# echo $c$d 12 [[email protected] ~]# export abc=123.com ##制作一個全局的環境變量 [[email protected] ~]# bash [[email protected] ~]# echo $abc 123.com


2、環境變量

1)系統環境變量

/etc/profile 用戶環境變量,交互,登錄才執行

/etc/bashrc 用戶不用登錄,執行shell就生效

2)用戶環境變量

~/.bashrc ##自定義一些別名alias

~/.bash_profile ##自定義一些變量

~/.bash_history ##自定義歷史相關配置

~/.bash_logout ##自定義退出後所執行的動作


若要配置環境變量之類,最保險是寫在 .bashrc 文件中。因為不管是登陸還是不登陸,該文件總會被調用。


定義PS1能夠改變命令提示符的格式:

[[email protected] ~]# echo $PS1            ##PS1輸出左邊的一個格式
[\u@\h \W]\$
[[email protected] ~]# PS1=‘[\u@\h \w]\$’  ##更改格式為絕對路徑
[[email protected] ~]#cd /etc/sysconfig/network-scripts/
[[email protected] /etc/sysconfig/network-scripts]#

使用#PS1=‘\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$‘命令可以帶顏色的顯示。這種方式只是暫存在內存中,想要永久修改,還是需要進入/etc/bashrc修改。


本文出自 “亂碼時代” 博客,請務必保留此出處http://juispan.blog.51cto.com/943137/1943310

[CentOS 7系列]變量