初窺門徑shell腳本

1.什么是shell腳本

   首先它是一個腳本,并不能作為正式的編程語言。因為是跑在linux的shell中,所以叫shell腳本。確切的說shell腳本就是一些命令的集合。

2.寫腳本前的一些細節及建議

  Shell腳本通常都是以.sh 為后綴名的,這個并不是說不帶.sh這個腳本就不能執行,只是大家的一個習慣而已。所以,以后你發現了.sh為后綴的文件那么它可能是一個shell腳本了。test.sh中第一行要以 “#! /bin/bash” 開頭,它代表的意思是,該文件使用的是bash語法。如果不設置該行,雖然你的shell腳本也可以執行,但是這不符合規范。 # 表示注釋,在前面講過的。后面跟一些該腳本的相關注釋內容以及作者和創建日期或者版本等等。當然這些注釋并非必須的,如果你懶的很,可以省略掉,但是我們不建議省略。因為隨著工作時間的逐漸過渡,你寫的shell腳本也會越來越多,如果有一天你回頭查看自己寫過的某個腳本時,很有可能忘記該腳本是用來干什么的以及什么時候寫的。所以寫上注釋是有必要的。另外系統管理員并非只有你一個,如果是其他管理員查看你的腳本,他看不懂豈不是很郁悶。

3.shell腳本編程基礎 

 3.1 基本數學運算

    [root@localhost sbin]# vim first.sh 

    [root@localhost sbin]# bash first.sh 5 6

    11

    [root@localhost sbin]# cat first.sh 

    #! /bin/bash

    ##This is my first shell script

    ##Writen by zhangliang  2016-08-10

    echo $[ $1+$2 ]

    [root@localhost sbin]# 

    QQ圖片20160811154025.png

    其中腳本中的$1和$2為shell腳本的預設變量,沒有限制的。$0代表腳本本身的名字。

    

    [root@localhost sbin]# sh first.sh  1 2

    1 2 first.sh

    [root@localhost sbin]# cat first.sh 

    #! /bin/bash

    ##This is my first shell script

    ##Writen by zhangliang  2016-08-10

    echo "$1 $2 $0"

   上部中的“sh first.sh  1 2”命令其實一般需要有執行權限x   如沒有則可用# chmod + first.sh來添加。

  3.2命令date

    實例 一.Y表示四位數字格式打印年份  y表示兩位數字格式打印年份  其他的則為英文單詞開頭字母大寫

               [root@localhost sbin]# date +"%Y-%m-%d %H:%M:%S"

               2016-08-11 19:07:24

         二. 表示前一天的日期:

               [root@localhost sbin]# date -d "-1 day" +%d

               10

    

   3.3參數前移

      

     [root@localhost sbin]# vim shift.sh 

     [root@localhost sbin]# sh -x shift.sh             由此可知shift命令每執行一次,變量的個數($#)

     + '[' 0 -eq 0 ']'                                                                               

     [root@localhost sbin]# sh -x shift.sh 1 2 3 4        減一, 變量值提前一位。                         

     + '[' 4 -eq 0 ']'

     + echo

                                                                                                  

     + shift                                                                                         

     + '[' 3 -eq 0 ']'                                                                                     + echo

     + shift

     + '[' 2 -eq 0 ']'

     + echo

     + shift                                                             

     + '[' 1 -eq 0 ']'

     + echo                                                QQ圖片20160811204744.png

     + shift                                

     + '[' 0 -eq 0 ']'

     [root@localhost sbin]# vim shift.sh 

     [root@localhost sbin]# cat shift.sh 

   

 3.4如何計在shell腳本中錨定計數空格行

     

     [root@localhost sbin]# 

     [root@localhost sbin]# vim konghang.sh 

     [root@localhost sbin]# bash konghang.sh /etc/fstab /etc/issue

     Total blank lines: 2

     QQ圖片20160811153943.png 

     shift命令還有另外一個重要用途,Bsh定義了9個位置變量,從$1到$9,這并不意味著用戶在命令行只能使用9個      參數,借助shift命令可以訪問多于9個的參數。

4.總結:

  多學!多練!直到孰能生巧融會貫通。    

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

(0)
ZzuimengZzuimeng
上一篇 2016-08-12
下一篇 2016-08-12

相關推薦

  • 如何在微軟Azure云機上添加新磁盤

    大家好: 最近在項目實踐中,分享下如何在微軟Azure云機上添加新磁盤。 首先需要查看下是否有未用上的磁盤,先fdisk -l查(看下圖)并和Azure技術確認該磁盤是否可永久保存數據: 然后找到未分區的磁盤號,如上圖中的/dev/sdc,再 fdisk /dev/sdc后開始在該新磁盤上進行分區創建: 為方便管理,我們一般就創建一個分區,然后進行格式化: …

    Linux干貨 2016-11-27
  • NFS服務器的安裝與配置

    一、NFS服務簡介 NFS 是Network File System的縮寫,即網絡文件系統。一種使用于分散式文件系統的協定,由Sun公司開發,于1984年向外公布。功能是通過網絡讓不同的機器、不同的操作系統能夠彼此分享個別的數據,讓應用程序在客戶端通過網絡訪問位于服務器磁盤中的數據,是在類Unix系統間實現磁盤文件共享的一種方法。 NFS 的基本原則是“容許…

    Linux干貨 2017-05-02
  • 編譯安裝bind9

    一、下載bind9.9.5源碼包     可以通過www.isc.org站點來獲得源碼包。 二、將源碼包解壓到任意目錄     源碼包通常都是.tar.gz文件,因此我們需要先將其解壓: 三、編譯安裝bind     1、安裝前的準備工作 …

    Linux干貨 2015-05-05
  • 19道小米網運維工程師筆試真題,你能通關嗎?

    第一部分:Linux基礎 題目1: 有一百個圖片文件,它們的地址都是 http://down.xiaomi.com/img/1.png http://down.xiaomi.com/img/2.png … 一直到http://down.xiaomi.com/img/100.png 批量下載這100個圖片文件,并找出其中大于500KB的文件。 題目2: 一個文…

    2017-09-08
  • 證書及加解密原理圖解

    證書管理 現在上網大多數網站都是使用https的協議,https是一個安全的訪問方式,數據在傳輸過程中是加密的,這時候在服務器端就需要使用證書。 科普加解密流程 服務器端客戶端 服務器在和客戶端通信前必須先建立SSL會話,下圖解析SSL會話過程

    Linux干貨 2016-09-25
  • 正則表達式

    什么是正則表達式? 正則表達式(Regular Expression)是一種文本模式,包括普通字符(例如,a 到 z 之間的字母)和特殊字符(稱為”元字符”)。正則表達式使用單個字符串來描述、匹配一系列匹配某個句法規則的字符串,許多程序設計語言都支持利用正則表達式進行字符串操作。正則表達式是煩瑣的,但它是強大的,學會之后的應用會讓你除…

    Linux干貨 2017-06-01

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-12 14:03

    文章對shell腳本的概念有了一個清楚的認識,需要補充一些腳本的變量及聯系作業哦

欧美性久久久久