shell腳本(一)

 本周是來馬哥教育的第四周,本周重點是shell腳本的編寫,本篇博客也是以shell腳本的簡述為主。

一.shell腳本的概念及意義

    shell腳本是linux下的一種編程方式,百度百科給出這樣的釋義:腳本(shell script)是利用shell的功能所寫的一個程序,這個程序是使用純文本文件,將一些shell的語法與指令寫在里面,然后用正規表示法,管道命令以及數據流重導向等功能,以達到我們所想要的處理目的。說白了,就是為了解決linux的實際問題,臨時寫的一個小程序來完成當前的工作,如果需要多次使用,還能保存下來循環使用。

二.腳本的規范

    腳本使用了shebang機制,即這樣的格式:!#/bin/bash、!#/use/bin/python。需要簡單的進行shell腳本的解釋。下面舉一個樣例:
    #!/bin/bash
    # ——————————————
    # Filename: hello.sh
    # Revision: 1.1
    # Date: 2017/08/05
    # Author: Mr.Dong
    # Email: Dong@gmail.com
    # Website: www.magedu.com
    # Description: This is the first script
    # ——————————————
    echo “hello world”
    利用這些信息,可以很快知道這個腳本的用處,以便于工作的使用。
    在運行的時候可以使用下面兩條命令進行腳本調試
    bash -n hello.sh 來查看腳本的語法錯誤
    bash -x hello.sh 可以查看腳本的執行步驟

三.變量

    1.本地變量
        本地變量只對當前shell有效,對子shell無效(SHLVL查看是幾級shell)。
        變量賦值:name=’value’
        字符串賦值:name=”root”
        變量引用:name=”$USER”
        命令引用:name=COMMAND name=$(COMMAND)
        顯示已定義的所有變量:set
        刪除變量:unset name
    2.環境變量
        環境變量對當前SHELL及其子SHELL均有效。
        變量的聲明和賦值命令: 
        export name=VALUE
        declare -x name=VALUE
        變量的引用:$name,${name}
        顯示所有的環境變量命令:
        env printenv export declare -x
        bash自帶環境變量:
        PATH SHELL USER UID HOME PWD SHLVL LANG MAIL HOSTNAME HISTSIZE
    3.只讀變量
        聲明只讀變量:
        readonly name 
        declare -r name
        查看只讀變量: readonly -p
    4.位置變量
        $1, $2, … :對應第1 、第2 等參數,shift [n] 換位置
        $0:  命令本身
        $:  傳遞給腳本的所有參數,全部參數合為一個字符串
        $@:  傳遞給腳本的所有參數,每個參數為獨立字符串
        $#:  傳遞給腳本的參數的個數
        $@ $
  只在被雙引號包起來的時候才會 有 差異
        set — 

四.算術運算與邏輯運算

    1.算術運算
      算數運算符:+ – * / %(取余) **(乘方)
      常用的運算:
        (1) let var= 算術表達式
        (2) var=$[ 算術表達式]
        (3) var=$(( 算術表達式))
        (4) var=$(expr arg1 arg2 arg3 …)
        (5) declare –i var =  數值
        (6) echo ‘ 算術表達式’ | bc
      產生隨機數命令:echo $[$RANDOM%number]  0-number之間的隨機數
      賦值運算:+= -= *= /= %=
      自增和自減:
      let var+=1
        let var++
      let var-=1
      let var–
    2.邏輯運算
      true=0 false=1
      與 1&&1=1 1&&0=0 0&&1=0 0&&0=0
      或 1||1=1 1||0=1 0||1=1 0||0=0
      非 !1=0 !0=1

五.test命令

    test命令是shell環境中測試條件表達式的實用工具。
    例如:test “$A” == “$B” && echo “Strings are equal”
    [ “$A” == “$B” ] && echo “Strings are equal”
    這兩種表述表達同一種意思。
    [[  ]]表示支持正則表達式
    數值比較:         字符串比較:
     -gt 是否大于      >
     -ge 是否大于等于  >=
     -eq 是否等于      ==
     -ne 是否不等于    !=
     -lt 是否小于      <
     -le 是否小于等于  <=

本篇博客只是對本周的shell腳本的學習的總結,后面還有拔高部分的學習,未完待續~

原創文章,作者:Mr.DONG,如若轉載,請注明出處:http://www.www58058.com/83768

(0)
Mr.DONGMr.DONG
上一篇 2017-08-05 11:23
下一篇 2017-08-05 14:21

相關推薦

  • hbase安裝配置(整合到hadoop)

    1.  快速單擊安裝 在單機安裝Hbase的方法。會引導你通過shell創建一個表,插入一行,然后刪除它,最后停止Hbase。只要10分鐘就可以完成以下的操作。 1.1下載解壓最新版本 選擇一個 Apache 下載鏡像:http://www.apache.org/dyn/closer.cgi/hbase/,下載 HBase Re…

    Linux干貨 2015-04-13
  • Python裝飾器與面向切面編程

    新年好~ 那么,很久沒有更新了,其實想想也沒多少可以寫的,因為Python的文檔似乎很全面的說……能做的差不多只有翻譯和整理了,英文過關的朋友不妨直接去doc.python.org這里查看相關資料 :) 轉載請注明原作者和原文地址,多謝! 今天來討論一下裝飾器。裝飾器是一個很著名的設計模式,經常被用于有切面需求的場景,較為經典的有插入日志、性能測試、事務處理…

    Linux干貨 2015-03-12
  • Linux 基礎(5)

    2017-07-22
  • N25-第三周作業

    1.列出當前系統所有已經登錄的用戶的用戶名,注意同一個用戶登錄多次,只顯示一次即可   who | cut -d" " -f1 |uniq 2.取出最后登錄到當前系統的用戶的相關信息    w | tail -1 3.取出當前系統上被用戶當做其默認shell最多的那個shell &nbsp…

    Linux干貨 2016-12-19
  • 快速運用NFS共享web頁面

    環境:centos7.3最小化三臺,前期準備關閉防火墻和selinux 目的:通過文件共享,使客戶端訪問web服務器時是同樣的頁面。 拓撲圖: 優勢:減少WEB服務器的壓力。 一、安裝軟件 NFS、WEB1、WEB2: #yum install nfs-utils -y WEB1、WEB2: #yum install httpd -y 二、配置 NFS: #…

    2017-04-27
  • Linux基礎命令及獲取命令幫助

    何為命令?         linux命令是對Linux系統進行管理的命令。對于Linux系統來說,無論是中央處理器、內存、磁盤驅動器、鍵盤、鼠標,還是用戶等都是文件,Linux系統管理的命令是它正常運行的核心,與之前的DOS命令類似。linux命令在系統中有兩種類型:內置She…

    Linux干貨 2016-10-25
欧美性久久久久