1. 程式人生 > >Linux的shell scripts

Linux的shell scripts

shell scripts

一.什麽是腳本(scripts)

安裝一定邏輯關系記錄的命令文件,在此文件有可執行權限的情況下可以用文件名稱發起腳本內記錄命令的執行,shell腳本是一種解釋性語言,文件內記錄的動作需要解釋器shell。

BASH = GNU Bourne-Again Shell,BASH 是 GNU 組織開發和推廣的一個項目。Bash腳本類似批處理,簡單來講就是把許多的指令集合在一起,並提供循環、條件、判斷等重要功能,語法簡單實用,用以編寫程序,大大簡化管理員的操作,並可以完成圖形工具所無法實現的功能。


二.如何建立一個shell腳本

1.vim test.sh

一般情況下腳本的結尾為“.sh”,這不是系統規定的,但是是一種業界規範


2.#!/bin/bash

腳本頭的寫法,這是腳本使用的解釋器,也就是默認腳本運行時開啟的子shell


3.腳本內容是用命令和命令執行的邏輯關系組成


4.使文件可執行(使用chmod +x scripts)


三.編寫腳本的規範

1.腳本中應添加腳本的說明信息

Author :an 名字

Email :[email protected] 聯系方式

Create_Date :2017-08-21 編輯日期

Vesion :1.0 版本

Description :test scripts 描述


編輯腳本說明配置文件

技術分享

在vimrc文件最下面添加以下內容

技術分享


編輯完整後,打開vim,按下

技術分享



2.腳本中盡量不要使用中文,哪怕用拼音代理,中文與英文系統解碼不一樣


3.腳本中出現的() | [ ] | < > 等等成對出現的符號要一次打出,並且內容中的字符與這些符號要有空格


4.腳本中的語句要一次寫完在豐富內容,可以先寫語句結構在寫內容


5.語句中使用的動作要縮進寫入,使腳本易讀


四.Shell變量


1.變量的作用

shell變量用於為稍後在腳本中使用的名稱指定值,並且僅限於shell命令行或從中聲明變量的腳本。


2.變量的命名規則

首字母不能是數字,變量中只能包含字母、數字和“_(下劃線)”

例如:TEST 、TEST_REDHAT 、Test_Redhat 、tesTRedhat

可根據自己喜好命名


3.變量設定的方式

(1)環境級

在當前環境生效,當前環境關閉,變量失效

如要永久生效,需要聲明 export A=1

技術分享

(2)用戶級

針對配置過的用戶生效,其他用戶無法使用

如要永久生效,需要修改配置文件

vim /root/.bash_profile ,添加export A=1

添加完成後 source /root/.bash_profile 重新加載配置文件

技術分享

(3)系統級

別名的設定

alias xie=‘vim‘

vim ~/.bashrc

alias xie=‘vim‘

技術分享

技術分享

技術分享

別名的刪除

刪除配置 /etc/bashrc文件中的 alias xie=‘vim‘

刪除xie別名 unalias xie


變量定義方式

user=root

使用位置參數來讀取傳遞給腳本的命令行參數或選項輸入。各種特殊變量存儲傳遞的選項編號
Bash解析的個別參數或整個原始命令行。
指定的位置參數總數:$#
位置參數自身:$0、$1、$2、$3....
所有位置參數: [email protected]$*

編寫腳本test.sh

技術分享

測試

技術分享



五.字符串比較運算符:=、!=


數字比較運算符:-eq(equal)、-ne(not equal)、-lt(less than)、-le(less or equal)、-gt(greater than)、-ge(greater or equal)


技術分享


-a 同時 -o 或者

技術分享



六.文件狀態運算符:test -{b|c|e|f|d|r|w|x|s|L} FILE/DIRECTORY

-b 塊設備

-c 字符

-e 存在

-f exist and regular

-d 目錄

-r regular

-L 鏈接

-n 變量值

-x x權限

技術分享

技術分享

技術分享



七.shell腳本中echo顯示內容帶顏色顯示,echo顯示帶顏色

需要使用參數-e

  格式如下:

  echo -e "\033[字背景顏色;文字顏色m字符串\033[0m"

  例如:

  echo -e "\033[41;36m Please Input a ipaddress \033[0m"

  其中41的位置代表底色, 36的位置是代表字的顏色

註:

  1、字背景顏色和文字顏色之間是英文的""

  2、文字顏色後面有個m

  3、字符串前後可以沒有空格,如果有的話,輸出也是同樣有空格

  下面是相應的字和背景顏色,可以自己來嘗試找出不同顏色搭配

  例

  echo -e “\033[31m 紅色字 \033[0m”

  echo -e “\033[34m 黃色字 \033[0m”

  echo -e “\033[41;33m 紅底黃字 \033[0m”

  echo -e “\033[41;37m 紅底白字 \033[0m”

  字顏色:30—–37

  echo -e “\033[30m 黑色字 \033[0m”

  echo -e “\033[31m 紅色字 \033[0m”

  echo -e “\033[32m 綠色字 \033[0m”

  echo -e “\033[33m 黃色字 \033[0m”

  echo -e “\033[34m 藍色字 \033[0m”

  echo -e “\033[35m 紫色字 \033[0m”

  echo -e “\033[36m 天藍字 \033[0m”

  echo -e “\033[37m 白色字 \033[0m”

  字背景顏色範圍:40—–47

  echo -e “\033[40;37m 黑底白字 \033[0m”

  echo -e “\033[41;37m 紅底白字 \033[0m”

  echo -e “\033[42;37m 綠底白字 \033[0m”

  echo -e “\033[43;37m 黃底白字 \033[0m”

  echo -e “\033[44;37m 藍底白字 \033[0m”

  echo -e “\033[45;37m 紫底白字 \033[0m”

  echo -e “\033[46;37m 天藍底白字 \033[0m”

  echo -e “\033[47;30m 白底黑字 \033[0m”

  最後面控制選項說明

  \33[0m 關閉所有屬性

  \33[1m 設置高亮度

  \33[4m 下劃線

  \33[5m 閃爍

  \33[7m 反顯

  \33[8m 消隱

  \33[30m — \33[37m 設置前景色

  \33[40m — \33[47m 設置背景色

  \33[nA 光標上移n行

  \33[nB 光標下移n行

  \33[nC 光標右移n行

  \33[nD 光標左移n行

  \33[y;xH設置光標位置

  \33[2J 清屏

  \33[K 清除從光標到行尾的內容

  \33[s 保存光標位置

  \33[u 恢復光標位置

  \33[?25l 隱藏光標

  \33[?25h 顯示光標

例:

讓字體變為紅色並且不停的閃爍
#echo -e "\033[31m \033[05m Please Input a ipaddress \033[0m"

字背景顏色範圍:40 - 49

40:黑
41:深紅
42:綠
43:黃色
44:藍色
45:紫色
46:深綠
47:白色

字顏色:30 - 39

30:黑
31:紅
32:綠
33:黃
34:藍色
35:紫色
36:深綠
37:白色









Linux的shell scripts