歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> Shell腳本編程的一些基礎

Shell腳本編程的一些基礎

日期:2017/3/1 10:36:54   编辑:SHELL編程

bash 腳本名 可以運行腳本
bash的常用選線
#bash
-n 語法測試
-x 顯示過程

編程語言:
動態語言(腳本語言)
變量不需要事先證明
解釋執行
編輯--->執行
高級腳本語言 perl 太自由 python (完全面向對象) 只提供一種最優的 方法 ruby
asp jsp php (不用使用到root權限) 面向網頁的腳本語言


靜態語言(編譯行語言)
變量必須聲明,嚴格區分變量類型
編譯後才能執行
編輯--->編譯--->連接--->執行



變量是命名的內存空間 命名 為了以後程序的調用方便


變量:
變量類型:限定 占內存空間大小、數據存儲格式
3
字符 8bit
數值 2bit




bash 不嚴格區分變量類型 區分數值型和字符型 不支持浮點行
2/3=0 只區整數部分--->圓整



命令行下聲明的變量 只對當前登錄的shell 及子shell 有效
變量
a3
declare
-i integer
-x 環境變量
declare -i A=0 初始化 聲明一個變量 並賦值
set A=3 set 聲明的都是本地變量 有空格要用引號引起來
變量類別(class):
本地變量: 只對當前shell有效 整個腳本都有效 不能到其他腳本
環境變量(全劇變量):對當前shell和子shell 有效
export declare -x 聲明環境變量
導出環境變量的方法:
1、先先聲明變量,然後export導出
2、直接export導出
特殊變量:
$0 特殊變量 用於引用腳本本身的名字
$* $@ 特殊變量 引用一個腳本的所有參數
$* 把每個變量都當一個字符串
$@ 把所有變量當成一個字符串
$# 傳遞個命令行參數的個數
位置變量:
$1-9 {0-無線}
shift $1 輪換顯示變量


local 定義變量 只對當前代碼段有效

變量用完之後怎麼處理:腳本結束後自動收回也可以
unset 撤銷變量 收回



如何引用變量:
${變量名} 變量替換/引用
$變量名 ANIMAL=pig There are some ${ANIMAL}s.


引號;引用
"":弱引用
'':強引用 強引用中的值不做變量替換 直接引用過來
``:命令引用

變量名的使用規定:
只能包含字母數字和下劃線,但是不能以數字開頭

#echo 變量 顯示變量的值

用戶工作環境配置文件:
全局配置:/etc/prefile, /etc/profile.d/*, /etc/bashre
個人配置:~/.bash_profile, .bashrc
~/.bash_history 命令歷史
~/.bash_logout 登出配置

profile類 :交互式登錄用戶生效
1、設置環境變量
2、運行一些命令或腳本


bashrc類:交互式和非交互式登錄用戶生效(不用用戶登錄就系要執行一些)
1、設置本地變量
2、定義命令別名

交互式登錄用戶執行用戶配置文件的過程
/etc/profile--->/etc/profile.d/*--->~/.bash_profile--->~/.bashrc--->/etc/bashrc
非交互式登錄:
~/.bashrc--->/etc/bashrc--->/etc/profile.d/*


顯示變量
#set 顯示所有變量
#export 只用於顯示聲明過的環境變量
#printenv 顯示環境變量

幾個關鍵的環境變量
DISPLAY:定義顯示信息顯示到那個顯示器上去
LANG:聲明當前的語言環境.字符編碼
PATH: 聲明 命令行在那個位置找命令對應的文件

輸入輸出重定向 和管道

標准輸入,標准輸出,標准錯誤輸出
標准輸入:STDIN 用0表示 默認是鍵盤
標准輸出:STDOUT 用1表示 默認是監視器
標准錯誤輸出:STDERR 用2表示 默認是監視器


輸出重定向:
>:定義標准輸出重定向 會把文件原有內容覆蓋掉 覆蓋輸出重定向
>>: 追加輸出重定向
2>:錯誤覆蓋輸出重定向
2>>:錯誤追加輸出重定向
&>混個輸出覆蓋重定向
&>>混合輸出


&> /dev/null 丟棄輸出


set -C 不允許使用覆蓋輸出
set +C 允許使用覆蓋輸出


管道:把一個命令的輸出當作另一個命令的輸入
|

COMMAND1 | COMMAND2 | COMMAND3 | ...

管道一次把所有的內容傳給後面的 命令

#tee 既顯示又保存 兩項輸出

輸入重定向;
< 輸入重定向 符號
<< here document 用於腳本當中生成一個問件時使用

腳本條件判斷:
判斷:bash
test expression
[ expression ] 必須有空格 可以做單獨的語句
[[ expression ]] 可以使用類似正則表達式的方式
[ ! expression ] 非


數值比較 整數比較測試
-gt 大於 great than
-ge 大於等於 great
-lt 小於
-le 小於等於
-eq 等於
-ne 不等於

Copyright © Linux教程網 All Rights Reserved