shell,是一個用C語言編寫的應用程序,是用戶使用linux的橋樑。因此呢,他既是一種命令語言,同時呢仍是一種程序設計語言。shell腳本(shell script),是一種爲shell編寫的腳本程序。業界所說的shell一般都是指shell腳本,shell和shell script是兩個不一樣的概念。因爲習慣的緣由,簡介起見,本文出現的「shell編程」都是指shell腳本編程,而不是指開發shell自身,注意二者的區別啊,小猿圈上有詳細視頻講解。php
下面開始說一下shell用法。 shell腳本開頭呢,必需要註明本身用的是那個解釋器。保存的文件後綴名爲***.sh就行了。我用的是bash,因此開頭須要註上#!/bin/bash 而後就是輸出了,跟php相似,echo就能夠輸出東西:echo "hello word!",就能夠輸出內容了。我是在windows上使用git GUI來運行的,具體運行方式爲./test.sh,而後回車就運行了這個test.sh文件。最主要的是shell裏沒有相似php的;似得分界符,只要換行就是另外的輸出了。 再來就是shell中的變量問題了,跟php的變量命名規則差很少,惟一不一樣的就是不須要使用$開頭來命名變量,可是輸出或者使用變量的時候必須使用$。具體方式爲your_name="alex"(變量命名),echo $your_name。還有就是我們phper的習慣是命名時習慣性的會加上空格:$your_name = "alex";,可是這是不正確的,等號兩邊不能加上空格,加上就算是常規性的defined。剛剛開始用shell的時候不少人就常常踩進這個坑啦。另,變量還有一種輸出方式:echo "${your_name} is my friend",其主要目的是爲了幫助解釋器識別變量邊界。比較個性的是咱們還可使用readonly這個命令來使咱們的變量只具備讀的屬性而不能修改,看起來比較高達上的樣子。咱們就能夠用unset加變量名的方式來刪除咱們所定義的變量。接下來按照php的套路,咱們最後要肯定的就是變量的類型,按照官方解釋以下:
運行shell時,會同時存在三種變量:linux
1) 局部變量 局部變量在腳本或命令中定義,僅在當前shell實例中有效,其餘shell啓動的程序不能訪問局部變量。git
2) 環境變量 全部的程序,包括shell啓動的程序,都能訪問環境變量,有些程序須要環境變量來保證其正常運行。必要的時候shell腳本也能夠定義環境變量。shell
3) shell變量 shell變量是由shell程序設置的特殊變量。shell變量中有一部分是環境變量,有一部分是局部變量,這些變量保證了shell的正常運行編程
好的,而後就到了字符串這塊了。其實不外乎獲取字符串的長度,截取字符串,拼接字符串等有限的幾個方面。在開始以前呢,還有一點須要提早說明的就是單雙引號之間的區別和用途:
單引號裏的任何字符都會原樣輸出,單引號字符串中的變量是無效的;windows
單引號字串中不能出現單引號(對單引號使用轉義符後也不行)。bash
雙引號裏能夠有變量學習
雙引號裏能夠出現轉義字符設計
字符串拼接與咱們php的樣式略微的有差別,那就是沒有鏈接符: your_name="qinjx" greeting="hello, "$your_name" !" greeting_1="hello, ${your_name} !" echo $greeting $greeting_1 獲取字符串長度: string="abcd" echo ${#string} #輸出 4 提取子字符串(如下示例是從字符串第二個開始,截取四個字符): string="runoob is a great site" echo ${string:1:4} # 輸出 unoo 字符串查找(如下示例的「`」是Esc鍵下面的那個): string="runoob is a great company" echo `expr index "$string" is` # 輸出 8
這樣的解釋小編認爲已經很清楚了,對shell腳本感興趣的朋友,能夠從這篇shell基礎篇學起,站在一個小白的角度寫的,相信即便是小白,也能夠透透徹徹的學習,感受不錯的朋友能夠去小猿圈官網上學習一下,但願對你收穫很大。code