shell編程是爲了簡化管理操做。
1、base變量與變量分類
base是Linux的標準shell。
base變量
set:查詢系統下全部環境變量
env: 查看系統下環境變量
unset:刪除變量
a.什麼是變量與變量分類
變量由字母和下劃線開頭,由字母下劃線數字組成。
變量名的長度不超過255個字符。
變量名在有效範圍內必須是惟一的。
在base中,變量的默認類型都是字符串型。
變量按照存儲數據類型分類:字符串型、整型、浮點型、日期型。
變量的分類:
用戶自定義變量,變量自定義的;
環境變量,保存的是和系統操做環境相關的數據;可是對系統生效的環境變量名和變量做用是固定的;
位置參數變量,主要用來向腳本中傳遞參數和數據,變量名不能自定義,變量做用是固定的;
與定義變量,是base中已經定義好的變量;變量名不能自定義,變量做用也是固定的;
b.用戶自定義變量
定義變量:變量名=變量值(等號兩側沒有空格)
變量調用:echo $變量名
變量默認字符串類型
變量疊加:x="$x"456或者x=${x}456
set:查詢系統下全部環境變量
unset:刪除變量
c.環境變量
環境變量是全局變量,用戶自定義變量只在當前shell生效
對系統生效的環境變量名和變量做用是固定的
設定環境變量: export 變量名=變量值 或者 變量名=變量值 export 變量名
env: 查看系統下環境變量
經常使用環境變量:
BASE/SHELL/HOSTNAME/HOSTSIZE/SSH_CLIENT/USER/PATH/HOME/LANG等
建議環境變量大寫
PATH:系統搜索命令路徑目錄,PATH="$PATH":/usr/local/apache
想要永久生效,須要把內容寫入文件裏面
PS1環境變量: \u,\A,\h,\W,\w,\s,
語系變量:
當前語系查詢:locale
LANG:定義系統主語系的變量
LC_ALL:定義總體語系的變量
cat /etc/sysconfig/i18n 系統默認語系
d.位置參數變量
$n,n爲數字,1-9
vim num.sh
#! /bin/bash
num1=$1
num2=$2
sum=$(($num1+$num2))
#變量sum是num1和num2的綜合
echo $sum
執行 ./num.sh 11 22
$*,這個變量表明命令行中全部的參數,$*把全部的參數當作一個總體
$@,這個變量也表明命令行中全部的參數,不過$@吧每一個參數區分對待
$#,這個變量表明命令行中全部參數的個數
e.預約義變量
$?,最後一次執行的命令的返回狀態。若是這個變量的值爲0,證實上一個命令正確執行;若是這個變量的值非0,則證實上一個命令執行不正確。
$$,當前進程的進程號
$!,後臺運行的最後一個進程的進程號
接受鍵盤輸入
read [選項][變量名]
-p "提示信息":在等待read輸入時,輸出提示信息
-t 秒數:read命令會等待用戶輸入,這裏指定等待時間
-n 字符數:read命令只接受指定的字符數,就會執行
-s:隱藏輸入的數據,使用於機密信息的輸入
vim read.sh
#! /bin/bash
read "please input your name:" -t 30 name
echo $name
read "please input your pass:" -t 30 -s pass
echo pass