shell腳本學習筆記(符號)

shell腳本的學習:shell

        1.Shell的做用是解釋運行用戶的命令,用戶輸入一條命令,Shell就解釋運行一條,這樣的方式稱爲交互式(Interactive),Shell還有bash

一種運行命令的方式稱爲批處理(Batch),用戶事先寫一 個Shell腳本(Script),當中有很是多條命令,讓Shell一次把這些命令運行完,而函數

沒必要一條一條地敲命令。post

        2.shell變量包含環境變量和本地變量,環境變量可以從父進程傳給子進程,printenv可打印出來;本地變量僅僅存在於當前學習

Shell進程,用set命令可以顯示當前Shell進程中定義的所有變量(包含本地變量和環境變量)和函數。spa

       3.變量引用:在Shell中定義或賦值一個變量:VARNAME=value;變量引用的形式爲${}, 變量引用的語句大概例如如下:命令行

當中:env | grep xxx 可以查看一個環境變量,export可以講一個變量導入爲環境變量code

            4.文件名稱代換:blog

                      通配符 * : 匹配0個或多個隨意字符
                      ? : 匹配一個隨意字符
                      [若干字符] : 匹配方括號裏隨意一個字符的一次出現
進程

  5.命令替換

                ` 或 $():由反引號括起來的也是一條命令,Shell先運行該命令,而後將輸出結果立馬代換到當前命令行中。算術代換$(())

於算術計算,$(())中的Shell變量取值將轉換成整數,$(())中僅僅能用+-*/和()運算符,並且僅僅能作整數運算

                   

          6.轉義字符 \

         主要建立了使用‘$’ 和‘ -’做爲文件名稱的時候很是麻煩,但是咱們可以經過例如如下:

                    

         7.‘’和 「」的差異

和C語⾔言不同,Shell腳本中的單引號和雙引號同樣都是字符串的界定符,而不是字符的界定符。單引號用於保持引號內所有

字符的字面值,即便引號內的\和回車也不例外, 但是字符串中不能出現單引號;雙引號⽤用於保持引號內所有字符的字⾯面值(回車

也不例外),但有些狀況除外。

可以參照下例:

      最後咱們談一談shell是怎麼運行的吧:

shell是經過fork/exec去運行的,每次運行一條命令的時候都是經過fork出一個子進程去運行的,而父進程等待子進程運行完才運行的。

因此我可以知道一個很是有趣的現象。咱們有例如如下腳本:

#!/bin/bash
  pwd
  cd ..
  pwd

                           


        這就說明shell會fork子進程去運行命令。只是咱們也可以不讓shell產生子進程,這是咱們可以這樣作:


                        

        因爲 "."是內建命令。它會是shell不產生子進程而去運行。關於內建命令可本身去查找一下,挺多的。

     

        好了,shell腳本的基本符號我介紹完了,確實比較有限。關於其它內容我會在接下來的博客在進行介紹。關於符號的相關知識你們可以

查閱一些資料或參考一些書籍在強化一下,我說的這些知識常見的一些而已。

相關文章
相關標籤/搜索