1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      Shell腳本是什么-創(chuàng)新互聯(lián)

      小編給大家分享一下Shell腳本是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

      網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了獨(dú)山子免費(fèi)建站歡迎大家使用!

      前言 
         Shell Script,Shell腳本與Windows及Dos下的批處理相似,也就是用各類命令預(yù)先放入到一個(gè)文件中,方便一次性執(zhí)行的一個(gè)程序文件,主要是方便管理員進(jìn)行設(shè)置或者管理用的。但是它比Windows下的批處理更強(qiáng)大,比用其他編程程序編輯的程序效率更高,畢竟它使用了Linux/Unix下的命令。shell script是利用shell的功能所寫的一個(gè)程序,這個(gè)程序是使用純文本文件,將一些shell的語法與指令寫在里面,然后用正規(guī)表示法,管道命令以及數(shù)據(jù)流重導(dǎo)向等功能,以達(dá)到我們所想要的處理目的。
         更明白地來說,shell script就像早期dos年代的.bat,最簡單的功能就是將許多指令匯整寫一起,讓使用者很容易地就能夠一個(gè)操作執(zhí)行多個(gè)命令,而shell script更是提供了數(shù)組,循環(huán),條件以及邏輯判斷等重要功能,讓使用者可以直接以shell來寫程序,而不必使用類似C程序語言等傳統(tǒng)程序編寫的語法。

      概念區(qū)別
         Shell和Shell腳本有什么區(qū)別?確切一點(diǎn)說,Shell就是一個(gè)命令行解釋器,它的作用就是遵循一定的語法將輸入的命令加以解釋并傳給系統(tǒng)。它為用戶提供了一個(gè)向Linux發(fā)送請求以便運(yùn)行程序的接口系統(tǒng)級程序,用戶可以用Shell來啟動、掛起、停止甚至是編寫一些程序。 Shell本身是一個(gè)用C語言編寫的程序,它是用戶使用Linux的橋梁。Shell既是一種命令語言,又是一種程序設(shè)計(jì)語言(就是你所說的shell腳本)。作為命令語言,它互動式地解釋和執(zhí)行用戶輸入的命令;作為程序設(shè)計(jì)語言,它定義了各種變量和參數(shù),并提供了許多在高階語言中才具有的控制結(jié)構(gòu),包括循環(huán)和分支。它雖然不是 Linux系統(tǒng)內(nèi)核的一部分,但它調(diào)用了系統(tǒng)內(nèi)核的大部分功能來執(zhí)行程序、創(chuàng)建文檔并以并行的方式協(xié)調(diào)各個(gè)程序的運(yùn)行。

      一、Shell腳本的基本語法
      1、編寫個(gè)簡單的shell腳本
      [root@xj ~]# vim example.sh
      #!/bin/bash
      #This is to show waht a example looks like.
      echo "our first example"
      echo "we are currently in the following directroy"
      pwd
      echo "This directory contains the following files"
      ls
      [root@xj ~]# chmod +x example.sh   //給腳本賦予可執(zhí)行權(quán)限
      [root@xj ~]# ./example.sh          //執(zhí)行運(yùn)行
      2、創(chuàng)建和執(zhí)行shell腳本的基本步驟

      二、Shell腳本的變量
      1、什么是變量
         變量來源于數(shù)學(xué),是計(jì)算機(jī)語言中能儲存計(jì)算結(jié)果或能表示值抽象概念。變量可以通過變量名訪問。在指令式語言中,變量通常是可變的;但在純函數(shù)式語言(如Haskell)
      中,變量可能是不可變(immutable)的。在一些語言中,變量可能被明確為是能表示可變狀態(tài)、具有存儲空間的抽象(如在Java和Visual Basic中);但另外一些語言可能使用其它概念(如C的對象)來指稱這種抽象,而不嚴(yán)格地定義“變量”的準(zhǔn)確外延。

      2、Shell變量
      Shell中變量是傳遞數(shù)據(jù)的一種方法。變量是用來代表每個(gè)值的符號名
      Shell中有兩類變量:臨時(shí)變量和永久變量。
      擴(kuò)展:
      自定義環(huán)境變量
      [root@xj ~]# mv example01.sh /etc/sysconfig/
      [root@xj ~]# export PATH=/etc/sysconfig:$PATH
      [root@xj ~]# echo $PATH
      /etc/sysconfig:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
      注:這種方式一旦終端關(guān)閉后,就會失效,要想修改永久生效,可以修改用戶目錄下.bashrc文件,在此文件的最后一行添加export PATH=/etc/sysconfig:$PATH保存退出。
      [root@localhost ~]# source .bashrc
      執(zhí)行.bashrc后不報(bào)錯(cuò),則表示成功!

      用戶定義變量:由字母或下劃線打頭,由字母、數(shù)字或下劃線組成,區(qū)分大小寫并且大小寫字母意義不同。變量名長度沒有限制。
      使用變量值時(shí),應(yīng)在變量名前加上“$”符號。
      例如:
      [root@xj ~]# 123=abc
      bash: 123=abc: command not found…

      變量賦值:變量=值,賦值號“=”兩邊不加空格,否則提示錯(cuò)誤。
      [root@xj ~]# a = 1
      bash: a: command not found…
      正確方式如下:
      [root@xj ~]# name=rm
      [root@xj ~]# NAME=mk
      [root@xj ~]# echo $NAME
      mk
      [root@xj ~]# echo $name
      rm

      3、變量的運(yùn)用
      例:將一個(gè)命令的執(zhí)行結(jié)果賦給變量
      [root@xj ~]# A=`date`
      [root@xj ~]# echo $A
      Tue Mar 8 21:12:45 CST 2016
      [root@xj ~]# B=$(date)
      [root@xj ~]# echo $B
      Tue Mar 8 21:13:33 CST 2016

      變量值的可傳遞性
      [root@xj ~]# A=`date`
      [root@xj ~]# C=$A
      [root@xj ~]# echo $C
      Tue Mar 8 21:12:45 CST 2016

      可以利用變量和其它字符組成一個(gè)新的字符串
      [root@xj ~]# MYDIR=/home/rm/
      [root@xj ~]# echo $MYDIR
      /home/rm/
      [root@xj ~]# echo $MYDIRzhangsan
      輸出內(nèi)容為空
      [root@xj ~]# echo ${MYDIR}zhangsan
      /home/rm/zhangsan

      給變量賦值多個(gè)單詞:
      [root@xj ~]# NAME="mk docker"
      [root@xj ~]# echo $NAME
      mk docker
      [root@xj ~]# NAME="rm $NAME"
      [root@xj ~]# echo $NAME
      rm mk docker
      [root@xj ~]# NAME='rm $NAME'
      [root@xj ~]# echo $NAME
      rm $NAME
      單引號和雙引號的區(qū)別:單引號將變量之間的內(nèi)容原封不動地指定給變量。雙引號取消了空格的作用,保留特殊符號的含義。

      刪除變量:
      [root@xj ~]# echo $NAME
      rm $NAME
      [root@xj ~]# unset NAME
      [root@xj ~]# echo $NAME

      4、Shell腳本中的位置變量與特殊變量
      位置變量:Shell解釋執(zhí)行用戶的命令時(shí),將命令行的第一個(gè)字作為命令名,而其它字作為參數(shù)。由出現(xiàn)在命令行上的位置確定的參數(shù)稱為位置參數(shù)。 
      位置變量:使用$N來表示
      [root@xj ~]# vim b.sh
      #!/bin/bash
      echo "第一個(gè)目錄是$1"
      echo "第二個(gè)目錄是$2"
      [root@xj ~]# chmod +x b.sh
      [root@xj ~]# ./b.sh /home/ /etc/
      第一個(gè)目錄是/home/
      第二個(gè)目錄是/etc/
      $0 這個(gè)程序的文件名 example.sh
      $n 這個(gè)程序的第n個(gè)參數(shù)值,n=1..N

      特殊變量:
      有些變量是一開始執(zhí)行Script腳本時(shí)就會設(shè)定,且不能被修改,但我們不叫它只讀的系統(tǒng)變量,而叫它特殊變量。這些變量當(dāng)一執(zhí)行程序時(shí)就有了,以下是一些等殊變量:
      $*  這個(gè)程序的所有參數(shù)
      $#  這個(gè)程序的參數(shù)個(gè)數(shù)
      $$  這個(gè)程序的PID
      $!  執(zhí)行上一個(gè)后臺程序的PID
      $?  執(zhí)行上一個(gè)指令的返回值
      [root@xj ~]# vim z.sh
      #!/bin/bash
      echo "$* 表示這個(gè)程序的所有參數(shù)"
      echo "$# 表示這個(gè)程序參數(shù)的個(gè)數(shù)"
      touch /root/a.txt
      echo "$$ 表示這個(gè)程序的PID"
      touch /root/b.txt &
      echo "$! 表示上一個(gè)后臺指令的PID"
      echo "$$ 表示程序的進(jìn)程PID"
      [root@xj ~]# ./z.sh aaa bbb ccc
      aaa bbb ccc 表示這個(gè)程序的所有參數(shù)
      3 表示這個(gè)程序參數(shù)的個(gè)數(shù)
      39839 表示這個(gè)程序的PID
      39841 表示上一個(gè)后臺指令的PID
      39839 表示程序的進(jìn)程PID

      例:變量在shell中的使用
      [root@xj ~]# vim z1.sh
      #!/bin/bash
      var1="abcd efg"
      echo $var1
      var2=1234
      echo "The value of var2 is $var2"
      echo $HOME
      echo $PATH
      echo $PWD
      [root@xj ~]# chmod +x z1.sh
      [root@xj ~]# ./z1.sh
      abcd efg
      The value of var2 is 1234
      /root
      /etc/sysconfig:/etc/sysconfig:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
      /root

      三、shell中的命令
      1、Read命令的使用
      作用:從鍵盤讀入數(shù)據(jù),賦給變量
      [root@xj ~]# read a b c
      1 22 33
      [root@xj ~]# echo $a $b $c
      1 22 33

      read與參數(shù)-p -n -t結(jié)合使用
      -p(提示語句) 
      -n(字符個(gè)數(shù))
      -t(等待時(shí)間) 
      [root@xj ~]# read -p "請輸入你的準(zhǔn)考證號: " ID
      請輸入你的準(zhǔn)考證號: 20160308
      [root@xj ~]# echo $ID
      20160308
      [root@xj ~]# vim read.sh
      #!/bin/bash
      read -p "請輸入你的姓名:" NAME
      read -p "請輸入你的年齡:" AGE
      read -p "請輸入你的性別:" SEX
      echo "你的基本信息如下:"
      echo "姓名:$NAME"
      echo "年齡:$AGE"
      echo "性別:$SEX"
      [root@xj ~]# chmod +x read.sh
      [root@xj ~]# ./read.sh
      請輸入你的姓名:孫悟空
      請輸入你的年齡:500
      請輸入你的性別:男
      你的基本信息如下:
      姓名:孫悟空
      年齡:500
      性別:男

      2、expr命令的使用
      作用:Shell變量的算術(shù)運(yùn)算:
      § expr命令:對整數(shù)型變量進(jìn)行算術(shù)運(yùn)算
      語法:expr 表達(dá)式    //注意:運(yùn)算符之間要有空格
      [root@xj ~]# expr 3 + 2
      5
      [root@xj ~]# expr 8 – 3
      5
      [root@xj ~]# expr 8 / 4
      2
      [root@xj ~]# expr 8 \* 4
      32
      [root@xj ~]# expr 8 % 3
      2
      注:%取余運(yùn)算

      結(jié)合變量使用運(yùn)算符
      [root@xj ~]# var1=16
      [root@xj ~]# var2=4
      [root@xj ~]# expr $var1 – $var2
      12

      3、算數(shù)運(yùn)算符在shell腳本中的使用
      [root@xj ~]# vim expr.sh
      #!/bin/bash
      read -p "Please input the value of a " a
      read -p "Please input the value of b " b
      read -p "Please input the value of c " c
      value1=`expr $a + $b + $c`
      echo "The value of value1 is $value1"
      value2=`expr $c / $b`
      echo "The value of value2 is $value2"
      value3=`expr $c \* $b`
      echo "The value of value3 is $value3"
      value4=`expr $a + $c / $b`
      echo "The value of value4 is $value4"
      [root@xj ~]# ./expr.sh
      Please input the value of a 10
      Please input the value of b 20
      Please input the value of c 30
      The value of value1 is 60
      The value of value2 is 1
      The value of value3 is 600
      The value of value4 is 11

      復(fù)雜運(yùn)算
      [root@xj ~]# expr $(expr $(expr 5 + 11) / $var3) + 4
      12

      以上是“Shell腳本是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!


      網(wǎng)頁題目:Shell腳本是什么-創(chuàng)新互聯(lián)
      標(biāo)題鏈接:http://ef60e0e.cn/article/depcpc.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        广东省| 建瓯市| 辛集市| 土默特右旗| 尚义县| 东兰县| 休宁县| 伊川县| 炎陵县| 富顺县| 达拉特旗| 蓝田县| 卢氏县| 玉门市| 桂东县| 紫云| 枣强县| 湄潭县| 长汀县| 霍邱县| 华池县| 建德市| 东阿县| 阿鲁科尔沁旗| 万盛区| 株洲县| 乐清市| 大方县| 舞阳县| 洪泽县| 镇原县| 聂拉木县| 新宁县| 安乡县| 青田县| 渭南市| 涪陵区| 汾阳市| 天峻县| 木兰县| 行唐县|