Shell腳本初探

寫在前面:

shell腳本是一種工具,善於利用shell腳本,會幫助我們進行命令行操作帶來很好的幫助。本文示例代碼,請參考我的Github。知乎專欄

shell定義

Shell 是一個用 C 語言編寫的程序,它是用戶使用 Linux 的橋樑。Shell 既是一種命令語言,又是一種程序設計語言。

Shell 是指一種應用程序,這個應用程序提供了一個界面,用戶通過這個界面訪問操作系統內核的服務。

shell腳本分類:

Shell 編程跟 java、php 編程一樣,只要有一個能編寫代碼的文本編輯器和一個能解釋執行的腳本解釋器就可以了。

Linux 的 Shell 種類眾多,常見的有:

  • Bourne Shell(/usr/bin/sh或/bin/sh)
  • Bourne Again Shell(/bin/bash)
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)
  • Shell for Root(/sbin/sh)

關於執行腳本的說明:

默認情況下,我們寫的shell腳本文件是不能夠直接執行的,需要更改腳本的執行許可權:

chmod +x ./your_file.sh

一、shell變數

shell變數命名規則,

  • 首個字元必須為字母(a-z,A-Z)。
  • 中間不能有空格,可以使用下劃線(_)。
  • 不能使用標點符號。
  • 不能使用bash里的關鍵字(可用help命令查看保留關鍵字)。
  • 注意,變數名和等號之間不能有空格。

my_name="jason"

新建varible.sh文件,輸入:

#!/bin/bashmy_name="jason"echo ${my_name}

執行腳本,bash顯示:

二、shell中for循環

新建varible_for.sh,輸入:

#!/bin/bashfor skill in run swim sing ;do echo "I can ${skill} "done

執行腳本,bash顯示:

三、shell定義只讀變數

新建readonly.sh,輸入:

#!/bin/bashmy_name="jason"readonly my_namemy_name="tom"

執行腳本,bash顯示

四、shell刪除變數

新建unset_varible.sh,輸入:

#!/bin/bashmy_name="jason"echo ${my_name} unset my_name echo ${my_name}

執行腳本,bash顯示:

第一個輸出語句有結果,unset變數之後,輸出沒有結果。

注意:

unset不能刪除readonly的變數,刪除時,會報錯:

新建unset_varible.sh ,輸入:

#!/bin/bashmy_name="jason"echo ${my_name}readonly my_nameunset my_name

執行腳本,bash顯示:

五、shell字元串

shell單引號和雙引號定義的字元串,有區別,單引號內的變數不會被轉譯,原樣輸出;雙引號內的變數會被轉譯。

新建string.sh,輸入:

#!/bin/bashmy_name="jason"str1=Hello , my name is ${my_name}str2="Hello , my name is ${my_name}"echo str1 echo str2

執行腳本,bash顯示如下:

截取字元串

#!/bin/bashstr="This is a shell string splicing example!"echo ${str:1:4}

${str:1:4}表示截取str下標為1的連續4個元素,bash顯示如下:

查找字元串:

六、shell數組

數組定義語法:

array_name=(value1 value3 value3)

新建array.sh,輸入:

#!/bin/bashmy_skill=( eat run swim boat)echo ${my_skill[2]}

執行腳本,bash顯示如下:

顯示數組所有元素:

#!/bin/bashlanguage=( english chinese france japanese)echo ${language[@]}

bash顯示如下:

相關鏈接:

參考鏈接:

Shell 變數 | 菜鳥教程
推薦閱讀:

惟江上之清風,與山間錕斤銬。
沈向洋:You Are What You Write,大家都要看
從零開始手敲次世代遊戲引擎(卌)
從零開始手敲次世代遊戲引擎(四十一)

TAG:Shell編程開發 | 編程 | C編程語言 |