標籤:
靜態語言:編譯型語言 事先轉換成可執行格式 
強型別(變數)
關鍵字:
C C++ JAVA C#
動態語言:解釋型語言 on the fly
弱類型
邊解釋邊執行
Asp.net shell PHP Python perl 
面向過程
物件導向
變數:記憶體空間,命名
變數類型:事先確定資料的儲存格式和長度
字元
數值
整型
浮點型:11,23
整型:8bit 256
0-255 溢出-->緩衝區溢位
邏輯:
布爾類型:0,1
邏輯運算:與,或,非,異或
1:真
0:假
1&0=0
0&0=0
1&1=1
非:取反
!真=假
!假=真
shell :弱類型
強:變數使用前必須先聲明,甚至還要初始化
弱:變數用時聲明,甚至不區分類型
bash變數類型:
環境變數
本地變數(局部變數)
位置變數
特殊變數
本地變數:
set VARNAME=VALUE:範圍整個bash進程
局部變數:
local VARNAME=VALUE :範圍為當前程式碼片段
環境變數:範圍為當前shell進程及其子進程
export VARNAME=VALUE
"匯出"
指令碼在執行時會啟動一個子shell進程
命令列中啟動的指令碼會繼承當前shell環境變數:
系統自動執行的指令碼(非命令列啟動)就需要自我定義需要各環境變數:
位置變數:
$1,$2,.....
特殊變數:
$?:上一個命令執行狀態傳回值:
程式執行後,可能有兩類傳回值
程式執行結果
程式狀態傳回碼(0-255)
0:正確執行
1-255:錯誤執行。1,2,127系統預留
輸出重新導向:
>
>>
2>
2>>
&>
/dev/null:軟體裝置 bit bucket 資料黑洞
bash
引用變數:${VARNAME} {}有時可省略
撤銷變數:
unset VARNAME
查看當前shell中變數:
set 
查看當前shell中的環境變數:
printenv
env
export
特殊變數,位置變數沒法查看
指令碼:命令的堆砌,按實際需要結合命令流程式控制制機制實現的來源程式
shebang:魔數
#!/bin/bash
#注釋行,不執行
shell之基礎概念與變數類型