一 什么事變量與變量分類
什么是變量
變量是計算機內(nèi)存的單元,其中存放的值可以改變變量讓你能夠把程序準備使用的每一段數(shù)據(jù)都賦給一個簡短搪泳、易于記憶的名字曲饱,因此他們十分有用
變量命名規(guī)則
變量名必須以字母或下劃線打頭吨悍,名字中間只能由字母數(shù)字和下劃線組成
變量名的長度不得超過255個字符
變量名在有效的范圍內(nèi)必須是唯一的
在Bash中裆馒,變量的默認類型都是字符串類型
變量按照存儲數(shù)據(jù)分類
字符串型 整型 浮點型 日期型
變量的分類
用戶自定義變量:變量自定義的
環(huán)境變量:這種變量中要保存的是和系統(tǒng)操作環(huán)境相關(guān)的數(shù)據(jù)健无。變量可以自定義回溺,但是對系統(tǒng)生效的環(huán)境變量名和變量作用是固定的
位置參數(shù)變量:這種變量主要是用來向腳本中傳遞參數(shù)或數(shù)據(jù)的啤贩,變量名不能自定義茫打,變量作用是固定的
預(yù)定義變量:是Bash中已經(jīng)定義好的變量居触,變量名不能自定義,變量作用也是固定的
用戶自定義變量
定義變量:變量名=變量值 例: x=5 name='abc'
變量調(diào)用:echo $變量名 例: echo $x echo $name
變量疊加:x=123 x="$x"456 (x=123456) x=${x}789 ( x=123456789)
變量查看: set 選項 -u:如果設(shè)定此選項老赤,調(diào)用未聲明變量時會報錯(默認無任何提示)
變量刪除:unset 變量名 例: unset name
環(huán)境變量
環(huán)境變量與用戶自定義變量的區(qū)別轮洋?
環(huán)境變量是全局變量
用戶自定義變量是局部變量
用戶自定義變量只在當(dāng)前的shell中生效
環(huán)境變量在當(dāng)前shell和這個shell的所有子shell生效
用戶可以自定義,但是對系統(tǒng)生效的環(huán)境變量名和變量作用是固定的
環(huán)境變量
對系統(tǒng)生效的環(huán)境變量名和變量作用是固定的
設(shè)置環(huán)境變量 export 變量名=變量值 或者 變量名=變量值 export 變量名
查看環(huán)境變量 set 查看所有變量 env 查看環(huán)境變量
刪除環(huán)境變量 unset 變量名
常用環(huán)境變量
HOSTNAME 主機名
SHELL 當(dāng)前的shell
TERM 終端環(huán)境
HISTSIZE 歷史命令條數(shù)
SSH_CLIENT 當(dāng)前操作環(huán)境是ssh連接的抬旺,這里記錄客戶端ip
SSH_TTY ssh連接的終端時 pts/1
USER 當(dāng)前登錄的用戶
PATH環(huán)境變量
PATH變量:系統(tǒng)查找命令的路徑
echo $PATH 查看PATH環(huán)境變量
PATH="$PATH":/root/sh 增加PATH的值
PS1環(huán)境變量
ps1變量:命令提示符設(shè)置
\d:顯示日期弊予,格式為“星期 月 日”
\H:顯示完整的主機名。如默認的主機名“l(fā)ocalhost.localdomain”
\t:顯示為24小時制時間开财,格式為“HH:MM:SS”
\A:顯示為24小時制時間汉柒,格式為“HH:MM”
\u:顯示當(dāng)前用戶名
\w:顯示當(dāng)前所在目錄的完整名稱
\W:顯示當(dāng)前所在目錄的最后一個目錄
\$:提示符。如果是root用戶會顯示提示符為“#”责鳍,如果是普通用戶會顯示提示符為“$”
當(dāng)前語系查詢
locale 查詢當(dāng)前系統(tǒng)語系
LANG 定義系統(tǒng)主語系的變量
LC_ALL 定義整體語系的變量
語系變量LANG
echo $LANG 查詢系統(tǒng)當(dāng)前語系
locale -a | more 查看Linux 支持的所有語系
查看系統(tǒng)默認語系
cat /etc/locale.conf
Linux中文支持
前提條件碾褂,正確安裝的中文字體和中文語系
如果有圖形界面,可以正確支持中文顯示
如果使用第三方遠程工具历葛,只要語系設(shè)定正確正塌,可以支持中文支持
如果使用純字符界面,必須使用第三方插件 (如 zhcon等)
位置參數(shù)變量
位置參數(shù)變量 作用
$n n代表數(shù)字恤溶,$0代表命令本身乓诽,$1-$9代表第一到第九個參數(shù),十以
上的參數(shù)需要用大括號包含宏娄,如{$10}
$* 這個變量代表命令行中所有的參數(shù)问裕,$*把所有的參數(shù)看成一個整體
$@ 這個變量代表命令行中所有的參數(shù),不過$@把每個參數(shù)區(qū)分對待
$# 這個命令代表命令行中所有參數(shù)的個數(shù)
例子1:
#孵坚!/bin/bash
num1=$1
num2=$2
sum=$(( $num1+$num2 )) //變量sum的和是 num1 加 num2
echo $sum //打印變量sum的值
例子2:
#粮宛!/bin/bash
echo "A total of $# parameters"
//使用$#代表所有參數(shù)的個數(shù)
echo "The parameters is : $* "
//使用$*代表所有的參數(shù)
echo "The parameters is : $@"
//使用$@也代表所有參數(shù)
例子3:
#!/bin/bash
//$*的所有參數(shù)看成一個整體卖宠,所有這個for循環(huán)只會循環(huán)一次
for i in "$*"
do
echo "The parameters is :$i"
done
//$@中的每個參數(shù)都看成獨立的巍杈,所有“$@”中有幾個參數(shù),就會循環(huán)幾次
for y in "$@"
do
echo “Parameter : $y”
done
預(yù)定義變量
預(yù)定義變量 作用
$? 最后一次執(zhí)行的命令的返回狀態(tài)扛伍。如果這個變量的值為0筷畦,證明上一個
命令正確執(zhí)行;如果這個變量的值非0(具體是哪個數(shù),由命令自己來決
定)鳖宾,則證明上一個命令執(zhí)行不正確了吼砂。
$$ 當(dāng)前進程的進程號(PID)
$! 后臺運行的最后一個進程的進程號(PID)
接收鍵盤輸入
read [選項][變量名]
-p "提示信息" : 在等待read輸入時,輸入提示信息
-t 秒數(shù): read命令會一直等待用戶輸入鼎文,使用此選項可以指定等待時間
-n 字符串: read命令只接受指定的字符串渔肩,就會執(zhí)行
-s : 隱藏輸入的數(shù)據(jù),適用于機密信息的輸入
shell編程之變量
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門灶平,熙熙樓的掌柜王于貴愁眉苦臉地迎上來伺通,“玉大人,你說我怎么就攤上這事逢享。” “怎么了吴藻?”我有些...
- 文/不壞的土叔 我叫張陵瞒爬,是天一觀的道長。 經(jīng)常有香客問我沟堡,道長侧但,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任航罗,我火速辦了婚禮禀横,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘粥血。我一直安慰自己柏锄,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布复亏。 她就那樣靜靜地躺著趾娃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪缔御。 梳的紋絲不亂的頭發(fā)上抬闷,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼喊崖!你這毒婦竟也來了挣磨?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布放妈,位于F島的核電站,受9級特大地震影響荐操,放射性物質(zhì)發(fā)生泄漏芜抒。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一托启、第九天 我趴在偏房一處隱蔽的房頂上張望宅倒。 院中可真熱鬧,春花似錦屯耸、人聲如沸拐迁。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽唠亚。三九已至,卻和暖如春持痰,著一層夾襖步出監(jiān)牢的瞬間灶搜,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 1.環(huán)境變量配置文件簡介 系統(tǒng)中登錄時起作用的環(huán)境變量: 放在etc中的會對所有目錄生效,放在home目錄下的只會...
- (1)declare命令Shell 變量一般是無類型的颜阐,但是bashShell 提供了declare和typese...