shell編程與變量——編寫你的第一個shell腳本

首先了解shell的做用:
linux

一、命令解釋器:「翻譯官」介於系統內核與用戶之間,負責解釋命令行
shell

二、用戶的登錄,登錄後默認使用的shell程序,通常爲/bin/bash。不一樣shell的內部指令、運行環境會有所區別bash

[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/bin/nologin
......

編寫第一個shell腳本:編輯器

一、編寫腳本代碼,完善腳本構成ide

使用vi編輯器this

全部腳本擴展名爲.shspa

每一天linux命令,按執行順序依次編寫命令行

養成良好習慣:開頭第一件事腳本聲明:#!/bin/bash翻譯

[root@localhost ~]# vi first.sh
#!/bin/bash
# this is first script
cd /boot
pwd
1s -lh vml*

image.png

二、賦予可執行權限
3d

root@localhost ~]# chmod +x first.sh


三、執行腳本文件

方法一:腳本文件路徑(絕對路徑與相對路徑)[此方式腳本文件必須擁有可執行權限]

[root@localhost ~]# ./first.sh

image.png

image.png

image.png

方法二: sh腳本文件路徑(此方式不會改變所在環境位置)

[root@localhost -]# sh /first.sh

image.png

方法三: source 腳本文件路徑

[root@localhost -]# source /first.sh

image.png

方法四:".+空格"腳本文件路徑

[root@localhost ~]# . first.sh

image.png

重點符號介紹——重定向與管道

交互式硬件設備

標準輸入:從該設備接收用戶輸入的數據:

標準輸出經過該設備向用戶輸出數據

標準錯誤:經過該設備報告執行出錯信息

spacer.gifspacer.gifimage.png

image.png

> 重定向:將輸出結果保存到指定文件

image.png

image.png

| 管道符號: 將左側的命令輸出結果,做爲右側命令的處理對象

cmd1 | cmd2 [... | cmdn]


image.png

image.png

image.png

spacer.gif

shell變量的做用及類型

一、變量的做用

  • 爲靈活管理Linux系統提供特定參數,有兩層意思

  • 變量名:使用固定的名稱,由系統預設或用戶定義

  • 變量值:可以根據用戶設置、系統環境的變化而變化

二、 變量的類型

  • 自定義變量:由用戶本身定義、修改和使用

  • 環境變量:由系統維護,用於設置工做環境

  • 位置變量:經過命令行給腳本程序傳遞參數

  • 預約義變量: Bash中內置的一類變量,不能直接修改


自定義變量

定義一個新的變量:

變量名以字母或下劃線開頭、區分大小寫,建議全大寫

變量名=變量值

查看變量的值

echo $變量名

image.png

image.png

賦值時使用引號

雙引號:容許經過$符號引用其餘變量值
單引號:禁止引用其餘變量值。$視爲普通字符
反撇號:命令替換,提取命令執行後的輸出結果

image.png

從鍵盤輸入內容爲變量賦值

read [-p 「提示信息」] 變量名

設置變量的做用範圍

格式1:export 變量名 ...
格式2:enport 變量名+變量值 ...

整數變量的運算

expr 變量1 運算符 變量2 [運算符 變量3] ...
經常使用運算符
加法運算:+
減法運算:-
乘法運算:\*
除法運算:/
求模(取餘)運算:%

image.png

image.png

特殊的shell變量

環境變量

  • 由系統提權建立,用來設置用戶的工做環境

  • 配置文件:/etc/profile(系統的環境變量)、~/.bash_profile(用戶的環境變量)

    image.png

    image.png

常見的環境變量

  • PWD、PATH

  • USER、SHELL、HOME

image.png

位置變量

  • 表示爲$n,n爲1~9之間的數字

image.png

image.png

預約義變量

  • $#:命令行中位置變量的個數

  • $*:全部位置變量的內容

  • $?:上一條命令執行後返回的狀態,當返回狀態置爲0時表示執行正常,非0值表示執行異常或出錯

  • $0:當前執行的進程/程序

image.png

image.png

image.png

相關文章
相關標籤/搜索