Linux shell編程1----shell腳本編程基礎
1 什麼是shell腳本
1 shell除了是命令解釋器之外還是一種編程語言,用shell編寫的程序類似於DOS下的批處理程序
2 用戶可以在文件中存放一系列的命令,通常將shell編寫的程序稱為shell腳本或者shell程序
3 將命令,變量和流程控制有機遞結合起來將會得到一個功能強大的編程工具。shell腳本語言非常擅長處理文本類型的的數據,由於Linux系統中的所有的配置文件都是純文本的,所以shell腳本語言在管理Linux系統中發揮了巨大的作用
2 shell腳本的成分
1 shell腳本是以行為單位的,在執行腳本的時候會分解為一行一行依次執行,腳本中所包含的成分主要有:注釋,命令,shell變量和結構控制語句
2 注釋:注釋部分是用於對腳本進行解釋和說明,在注釋行的前面加上符號#,這樣在執行腳本的時候shell就不會對該行進行解釋
3 命令:在shell腳本中可以出現任何交互式下可以使用的命令
4 變量:shell支持兩種的數據類型字符串變量和整型變量
5 結構控制語句:用於編寫復雜腳本的流程控制語句
3 shell腳本的建立與執行
1 用戶可以使用任何的文本編輯器創建shell腳本文件,比如vi,gedit等等
2 對shell腳本的執行有兩種方法
1 一種是將文件名作為shell命令的參數,調用格式
sh 文件名
2 另外一種是./文件名
但是當我們執行這份額腳本文件的時候,發現提示我們沒有執行權限,所以以第二種方式來執行的時候我們必須改變這個文件的權限,使得它具有執行的權限
3 當執行一個腳本文件的時候,shell就產生一個子shell(即子進程)去執行命令中的命令,因此文件中的變值不能傳遞到shell中
4 shell腳本的編碼規范
1 一個bash腳本的正確的起始部分是應該以#!開頭:#!/bin/bash
2 在調用bash腳本的時候,以#!開頭的語句通知系統用何解釋器執行腳本
3 如果默認的shell是bash可以不用寫,但是良好的shell編碼規范要求我們必須要注明是用什麼解釋器在執行
5 shell實例分析
1 首先ubuntu系統下的默認的shell是dash,ubuntu下的sh只是默認shell的鏈接,我們可以利用 ls /bin/sh -l 來查看默認的shell
2 我們可以使用以下兩種方法來更改默認的shell
1 sudo dpkg-reconfigure dash, 然後選擇 no 或者 否 ,並確認。這樣做將重新配置 dash,並使其不作為默認的 shell 工具
2 也可以直接修改 /bin/sh 鏈接文件,sudo ln -fs /bin/bash /bin/sh 將其指定到 /bin/bash。
3 接下來我們來創建一個shell的腳本,命名為s.sh
4 接下來我們利用兩種方法來執行,利用第二種的時候要先更改權限