1. 程式人生 > >DAY11 Shell腳本基礎(Enginner05-1)

DAY11 Shell腳本基礎(Enginner05-1)

文件 id號 asc 移動 代碼 目錄 提前 自定義 是否

一、簡介

它是一個可執行文件。提前設計可執行語句,用來完成特定任務

1.1 常見的腳本類型

Bash Shell
Python/Perl/Ruby
JSP/PHP/ASP/CGI
Javascript

1.2 Shell語言最大的優勢

能夠完全兼容linux系統

1.3 規範Shell腳本的組成

#!環境聲明--聲明使用哪個解釋器 /bin/bash
#註釋文本 十行以上的腳本必須有註釋
執行代碼
......

二、編寫腳本

2.1 創建過程

2.1.1明確任務需求

-按照自然語言拆分小步驟
-按順序整理好

2.1.2編寫代碼文件

-每一個步驟怎麽實現
-轉換成命令行保存到腳本文件

2.1.3 測試並完善

-運行腳本,並根據結果排除錯誤

-代碼優化,用戶友好處理

2.2 腳本練習

-輸出hello world
-添加yum源
-添加用戶test05
-輸入一個IP地址,判斷是否能ping通,輸出相應提示信息

三、高級重定向輸出

1> 只接收前面命令結果的正確輸出
2> 只接收前面命令結果的錯誤輸出
&> 接收前面命令結果的正確的輸出和錯誤的輸出
/dev/null 黑洞設備

四、變量

4.1 由來

為了增加腳本的適用環境的能力,增加腳本的靈活度

4.2 定義

以不變的名稱儲存變化的值

4.3 格式

變量名=變化的值

4.4 註意事項

-若指定的變量名存在,相當於為該變量重新賦值
-等號兩邊不能有空格
-變量名只能有數字/字母/下劃線組成

-變量名不能以數字開頭,不要使用關鍵字和特殊字符

4.5 查看方式

echo 變量名
echo {變量名}:當變量和常量在一起輸出的時候,要用{}把變量括起來

4.6 引用方式

$變量名
${變量名}

4.7 變量分類

4.7.1 環境變量

變量名一般為大寫,用來設置用戶/系統環境
$USER:當前登陸的用戶
$PWD:當前工作目錄
$PATH:提供命令程序的搜尋路徑

4.7.2 位置變量

bash內置的,用來存儲腳本執行時的提供的命令行參數
用$n表示,n為序號,如1,2,3,4,。。。
-位置變量在雙數的時候必須用${12}的方式引用

4.7.3 預定義變量

bash內置的,可以直接調用的特殊值,不可直接為這些變量賦值

$#:已加載的位置變量的個數
$*:所有位置變量的值
$?:程序退出時的狀態值,0表示正常,其他值為異常
$0:當前所在的進程或腳本名
$$:當前運行進程的PID號

4.7.4 自定義變量

用戶自定義的變量

五、Shell常用命令

5.1 read -p ‘Input username:‘ user

按行讀取鍵盤的輸入,把輸入賦值給user,-p是打印提示信息

5.2 expr 2 * 3

計算表達式的值,表達式為2*3,值為6

5.3 $(command)

在一串指令當中, $(command)內的指令會先被執行, 執行完的結果再回傳到外部指令來處理
$(date +%F):當前日期

5.4 command

與$(command)的效果相同

5.5 shift [1,2,3...]

shift命令用於對參數的移動(左移),通常用於在不知道傳入參數個數的情況下依次遍歷每個參數然後進行相應處理(常見於Linux中各種程序的啟動腳本)。不帶參數的shift相當於shift 1

DAY11 Shell腳本基礎(Enginner05-1)