shell編程:
編譯器,解釋器
編程語言:機器語言、彙編語言、高級語言
靜態語言:編譯型語言
強類型(變量)
事先轉換成可執行格式
C、C++、JAVA、C#
動態語言:解釋型語言,on the fly
弱類型
邊解釋邊執行
PHP、SHELL、Python、perl
面向過程:shell,c
面向對象:JAVA,python,perl,c++
變量:內從空間,命名
內存:編址的存儲單元
進程:程序運行起來就是進程
變量類型:事先確定數據的存儲格式和長度
字符
數值:整型,浮點型
整型:8bit,村256-->溢出
布爾型:真,假
與:只要一個爲假-->假 短路邏輯運算
或:只要一個爲真-->真
非:
異或:
強類型:變量在使用前,必須事先聲明,甚至初始化
NULL:爲空
弱類型:變量用時聲明,甚至不區分類型;
如果不聲明,默認爲字符類型
變量賦值:變量名=值
bash變量類型:
環境變量:
本地變量:(局部變量)
位置變量:
特殊變量:
本地變量:
VARNAME=VALUE:作用域爲整個bash進程;
局部變量:
local VARNAME=VALUE:作用域爲當前代碼段;
環境變量:
export VARNAME=VALUE;
“導出”
腳本在執行時會啓動一個子shell進程;
命令行中啓動的腳本會繼承當前shell的環境變量
系統自動執行的腳本(非命令行啓動)就需要自我定義需要的各環境變量;
引用變量:${VARNAME} 括號可省
位置變量:$1,$2...
特殊變量:
$?:上一個命令的執行狀態返回值;
程序執行,可能有兩類返回值:
程序執行結果
程序狀態返回代碼(0-255)
0:正確執行
1-255:錯誤執行,1,2,127系統預留;
輸出重定向:> >> 2> 2>> &>
撤銷變量:
unset VARNAME
查看當前shell中變量:set 包括環境變量和本地變量
查看當前shell中的環境變量:
printenv,env,export
爲PATH變量添加/usr/local/mysql
export PATH=$PATH :/usr/local/mysql
腳本:命令的堆砌,按實際需要,結合命令流程控制機制實現的源程序
shebang:魔數
#!/bin/bash -->腳本開頭
# -->註釋行,不執行