shell腳本編程

shell腳本的擴(kuò)展名為 .sh

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

#! 是一個約定的標(biāo)記,后面的參數(shù)/bin/bash告訴系統(tǒng)這個腳本需要什么解釋器來執(zhí)行,即使用哪一種 Shell。

chmod +x ./test.sh #使腳本具有執(zhí)行權(quán)限
./test.sh #執(zhí)行腳本

注意,一定要寫成 ./test.sh,而不是 test.sh,運(yùn)行其它二進(jìn)制的程序也一樣,直接寫 test.sh,linux 系統(tǒng)會去 PATH 里尋找有沒有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的當(dāng)前目錄通常不在 PATH 里,所以寫成 test.sh 是會找不到命令的,要用 ./test.sh 告訴系統(tǒng)說,就在當(dāng)前目錄找。

Shell 變量

your_name="runoob.com"

注意,變量名和等號之間不能有空格.

使用變量
使用一個定義過的變量,只要在變量名前面加美元符號即可,如:

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

變量名外面的花括號是可選的,加不加都行,加花括號是為了幫助解釋器識別變量的邊界

只讀變量
使用 readonly 命令可以將變量定義為只讀變量,只讀變量的值不能被改變。

刪除變量
使用 unset 命令可以刪除變量。語法:

unset variable_name

Shell 字符串

字符串可以用單引號,也可以用雙引號,也可以不用引號。

單引號

str='this is a string'

單引號字符串的限制:
單引號里的任何字符都會原樣輸出,單引號字符串中的變量是無效的;
單引號字串中不能出現(xiàn)單引號(對單引號使用轉(zhuǎn)義符后也不行)。

雙引號

your_name='qinjx'
str="Hello, I know your are \"$your_name\"! \n"

雙引號的優(yōu)點:
雙引號里可以有變量
雙引號里可以出現(xiàn)轉(zhuǎn)義字符

獲取字符串長度

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

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

string="runoob is a great site"
echo ${string:1:4} # 輸出 unoo
# 字符串的索引也是從0開始

查找子字符串
查找字符 "i 或 s" 的位置:

string="runoob is a great company"
echo `expr index "$string" is`  # 輸出 8
# 注意這里是``這個符號

注意: 以上腳本中 "`" 是反引號,而不是單引號 "'",不要看錯了哦。*

Shell 數(shù)組

定義數(shù)組

數(shù)組名=(值1 值2 ... 值n)

例如:
array_name=(value0 value1 value2 value3)
或者

array_name=(
value0
value1
value2
value3
)

還可以單獨定義數(shù)組的各個分量:

array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen

可以不使用連續(xù)的下標(biāo),而且下標(biāo)的范圍沒有限制。
讀取數(shù)組
讀取數(shù)組元素值的一般格式是:
${數(shù)組名[下標(biāo)]}
例如:
valuen=${array_name[n]}
使用@符號可以獲取數(shù)組中的所有元素,例如:
echo ${array_name[@]}

獲取數(shù)組的長度
獲取數(shù)組長度的方法與獲取字符串長度的方法相同,例如:
取得數(shù)組元素的個數(shù)
length=${#array_name[@]}
或者
length=${#array_name[*]}
取得數(shù)組單個元素的長度
lengthn=${#array_name[n]}

注釋:#

未完待續(xù)....

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 作者:qinjx原文地址:Shell腳本編程30分鐘入門 什么是Shell腳本 示例 看個例子吧: 示例解釋 第1...
    IT程序獅閱讀 2,370評論 1 67
  • 一、什么是Shell腳本 示例 看個例子吧: 示例解釋 第1行:指定腳本解釋器,這里是用/bin/sh做解釋器的 ...
    Rick617閱讀 897評論 0 1
  • 什么是Shell腳本 示例 看個例子吧: 示例解釋 第1行:指定腳本解釋器,這里是用/bin/sh做解釋器的 第2...
    guanguans閱讀 1,613評論 2 46
  • 什么是Shell腳本 示例 看個例子吧: 示例解釋 第1行:指定腳本解釋器,這里是用/bin/sh做解釋器的 第2...
    余歌_非魚閱讀 4,820評論 2 93
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,723評論 0 5

友情鏈接更多精彩內(nèi)容