Liunx----Shell腳本簡單介紹 Shell運行環境和Shell變量

Shell 腳本(shell script),是一種爲 shell 編寫的腳本程序。php

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

Linux 的 Shell 種類衆多,常見的有:shell

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

默認爲 #!/bin/bash編程

#!/bin/bash echo "Hello World !"

定義變量時,變量名不加美圓符號($,PHP語言中變量須要),如:bash

your_name="runber"

注意,變量名和等號之間不能有空格:編輯器

  • 命名只能使用英文字母,數字和下劃線,首個字符不能以數字開頭。
  • 中間不能有空格,能夠使用下劃線(_)。
  • 不能使用標點符號
  • 不能使用bash中已有的命令符

使用一個定義過的變量,只要在變量名前面加美圓符號便可this

  

your_name="qinjx"
echo $your_name echo ${your_name}

加花括號是爲了幫助解釋器識別變量的邊界:google

yo ="absy"
    echo  ${yo}sjaj

使用 readonly 命令能夠將變量定義爲只讀變量,只讀變量的值不能被改變。spa

#!/bin/bash myUrl="http://www.google.com" readonly myUrl myUrl="http://www.baidu.com"

運行腳本,結果以下:code

/bin/sh: NAME: This variable is read only.

使用 unset 命令能夠刪除變量。但不能刪除只讀變量。

運行Shell腳本時候,會有三種變量類型

  • 1) 局部變量 局部變量在腳本或命令中定義,僅在當前shell實例中有效,其餘shell啓動的程序不能訪問局部變量。
  • 2) 環境變量 全部的程序,包括shell啓動的程序,都能訪問環境變量,有些程序須要環境變量來保證其正常運行。必要的時候shell腳本也能夠定義環境變量。
  • 3) shell變量 shell變量是由shell程序設置的特殊變量。shell變量中有一部分是環境變量,有一部分是局部變量,這些變量保證了shell的正常運行

字符串是shell編程中最經常使用最有用的數據類型:

單引號:

單引號字符串的限制:

  • 單引號裏的任何字符都會原樣輸出,單引號字符串中的變量是無效的;
  • 單引號字串中不能出現單獨一個的單引號(對單引號使用轉義符後也不行),但可成對出現,做爲字符串拼接使用。
str='this is a string'

雙引號的優勢:

  • 雙引號裏能夠有變量
  • 雙引號裏能夠出現轉義字符
your_name='runoob' str="Hello, I know you are \"$your_name\"! \n"
echo $str
Hello, I know you are "runoob"!

拼接字符串

your_name="runoob" # 使用雙引號拼接 greeting="hello, "$your_name" !" greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1 # 使用單引號拼接 greeting_2='hello, '$your_name' !' greeting_3='hello, ${your_name} !'
echo $greeting_2  $greeting_3

輸出結果

hello, runoob ! hello, runoob ! hello, runoob ! hello, ${your_name} !

獲取字符串長度

string="abcd"
echo ${#string} #輸出 4

提取子字符串

如下實例從字符串第 2 個字符開始截取 4 個字符:

string="runoob is a great site"
echo ${string:1:4} # 輸出 unoo

查找子字符串

查找字符 i 或 o 的位置(哪一個字母先出現就計算哪一個):

string="runoob is a great site"
echo `expr index "$string" io`  # 輸出 4

注意: 以上腳本中 ` 是反引號,而不是單引號 ',反引號是能夠輸出腳本命令。

echo `ifcongfig`
相關文章
相關標籤/搜索