shell編程: 編譯器,解釋器php
編程語言:機器語言、彙編語言、高級語言c++
靜態語言:變異型語言shell
強類型(變量)
編程
事先轉換成能夠執行格式
c#
c、c++、JAVA、c#
bash
動態語言:解釋型語言,(on the fly)編程語言
弱類型
ide
邊解釋邊執行
命令行
php、SHELL、Python、Perl
對象
面向過程:shell、c
面向對象:JAVA、Python、Perl、c++
變量:內存空間,命名
內存:編址的存儲單元
變量類型:事先肯定數據的存儲格式和長度
字符型
數值型
整型
浮點型
整型,8bit:保存256
0-255 溢出
邏輯:1+1>2
邏輯運算:與、或、非、異或
1:真
0:假
與:
1&0=0
0&1=0
0&0=0
1&1=1
非:
!真=假
!假=真
shell:弱類型編程語言
強:變量在使用前,必須事先聲明,甚至還須要初始化
弱:變量用時聲明,甚至不區分類型
bash變量類型:環境變量 本地變量(局部變量) 位置變量 特殊變量
本地變量:
VARNAME=VALUE 做用域爲整個 bash進程:
引用變量:${變量名},括號有的時候能夠省略
[root@localhost ~]# name=jack
[root@localhost ~]# echo $name
jack
[root@localhost ~]# animal=dog
[root@localhost ~]# echo "there are some ${animal}s"
there are some dogs
局部變量:
local VARNAME=VALUE:做用域爲當前代碼段:
環境變量:
做用域爲當前shell進程及其子進程。
expore VANAME=VALUE
"導出"
位置變量:
$1, $2,......
特殊變量:
$?:上一個命令執行狀態返回值;
程序執行。肯能有了兩類返回值;
1.程序執行結果
2.程序狀態返回代碼(0-255)
0:正確執行
1-255:錯誤執行 , 1,2 ,127 系統預留
輸出重定向:
> :覆蓋重定向
>>:追加劇定向
2>:錯誤重定向
2>>錯誤追加劇定向
&>同時重定向
撤銷變量:
unset vaname
查看當前shell中變量;
set
查看當前shell中的環境變量:
princev
env
export
腳本:命令的堆砌,按實際須要,結合命令流程機制實現的源程序
shebang:魔數
#!/bin/bash
#:而後的#都是注釋行
給
腳本在執行時會啓動一個子shell環境變量;
/dev/null:軟件設備,bit bucket,數據黑洞
腳本在執行時會啓動一個子shell進程;
命令行中啓動的腳本會繼承當前shell環境變量;
系統自動執行的腳本(非命令行啓動)就須要自我定義須要各環境變量