bash 是一個爲GNU計劃編寫的Unix shell。
程序開發語言有兩種:
1.解釋型語言:perl,python,ruby,bash等,由解釋器負責讀取一行執行一行,
2.編譯型評議:c,c++,c# 等,由編譯器把整個程序轉換爲二進制格式,而後執行
變量: 內存空間,可用於存儲數據
bash變量:
環境變量 : 作用域爲當前的shell進程和子進程。
設置一個新的環境變量規則爲:export VARNAME=VALUE,環境變量有全局環境變量和本地環境變量,全局環境變量是指對所有登陸用戶都起作用的環境變量,文件在 /etc/profile ,/etc/profile.d/*.sh , /etc/bashrc ,如在編譯安裝mysql後,可以在/etc/profile文件中最後加入export PATH=/usr/local/mysql/bin:$PATH或用命令 echo "export PATH=/usr/local/mysql/bin:$PATH" >>/etc/profile 注:/usr/local/mysql/bin是指mysql的安裝路徑然後執行source /etc/profile 使變量生效,即可以使用mysqladmin命令來設置mysql密碼。查看當前環境變量:env 或export
本地變量(局部變量): 只對當前shell進程有效:對其子shell及其它shell都無效;例
[root@localhost ~]# a=6 [root@localhost ~]# echo $a 6 ##變量引用:${VAR_NAME} 用$符加變量名。
位置變量:$1,$2,…….,$1表示第一個參數,$2第二個參數,類推,$0: 執行腳本時的腳本路徑及名稱 basename $0 取得腳本的名稱,$# 位置參數的個數,seq 0 $# 表示從0到最後一個參數的列表,可以用於循環。
特殊變量:
$? :上一個命令的返回值:程序執行結果,如果返回0 代理正確執行,1-255 :錯誤執行,數值1,2,127 爲系統預留的返回值。
$# 位置參數的個數
"$*" 所有的位置參數(作爲單個字符串) *
"$@" 所有的位置參數(每個都作爲獨立的字符串)
${#*} 傳遞到腳本中的命令行參數的個數
${#@} 傳遞到腳本中的命令行參數的個數
$? 返回值
$$ 腳本的進程ID(PID)
$- 傳遞到腳本中的標誌(使用set)
$_ 之前命令的最後一個參數
$! 運行在後臺的最後一個作業的進程ID(PID)
* 必須被引用起來, 否則默認爲"$@".
bash 的配置文件
全局配置 /etc/profile , /etc/profile.d/*.sh , /etc/bashrc
個人配置 用戶目錄下 ~/.bash_profile, ~/.bashrc
profile類的文件: 1.設定環境變量,如設置mysql的環境變量 2. 運行命令或腳本
bashrc類的文件: 1.設定本地變量 2 定義命令別名 如 alias cls=clear 即可用cls起到clear的作用
用戶登陸時,讀取配置文件的順序是 /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc 用su命令更換用戶名是,讀取的配置文件爲 ~/.bashrc --> /etc/basrc --> /etc/profile.d/*.sh
shell 變量類型:事先確定數據的存儲格式和長度(數據表示範圍)
字符型:ASCII碼,128個基本字符,用一個字節表示,即8位
數值型:
整型 即整數,二進制表示,4位一個數字,兩個數字即8位
浮點型 近似值,帶有小數的,單精度,雙精度,
布爾型: 日期型,對象,一般編程不會用到
shell中一般默認定義變量爲字符型,如果要用做數值計算,就要用到bc 命令,在命令行輸入bc命令就可以進行數值計算。運算符有+、-、*、/、%(取餘)、^(指數,即冪),bc默認是整型,如果要進行小數點以後的運算,即浮點運算,需要輸入命令scal=number,number即保留幾位小數。
示例:
[root@localhost ~]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1+8+5
14
5^4
625
10%8
2
scale=2
3/7
.42
quit
如果要在shell中直接運用算術運行,可以有以下幾種方法
A=3
B=6
1、let 算術運算表達式
let C=$A+$B
2、$[算術運算表達式]
C=$[$A+$B]
3、$((算術運算表達式))
C=$(($A+$B))
4、expr 算術運算表達式,表達式中各操作數及運算符之間要有空格,而且要使用命令引用
C=`expr $A + $B`
bash變量也可聲明,甚至可以指定類型:declare
declare -i VAR_NAME: 聲明一個整型變量
declare -x VAR_NAME: 聲明一個環境變量
declare -a VAR_NAME: 聲明一個數組
如果bash中變量沒有指定類型,默認爲字符號變量,查看所有變量,set 可以顯示出來。