shell編程相關(guān)

常用語法說明

# 獲取字符串長(zhǎng)度
str="Hello world"
echo ${#str}

# 提取字符串
echo ${str:1,3} #輸出ell

#數(shù)組定義
array=(v1 v2 v3 v4 v5 v6 ...)
#或者使用下列方式
array[0]=v1
array[1]=v2

#讀取數(shù)組
# @表示數(shù)組內(nèi)所有元素
echo ${array[0]}
echo ${array[@]}

# 獲取數(shù)組長(zhǎng)度
echo ${#array[@]}
echo ${#array[*]}

# 獲取單個(gè)元素長(zhǎng)度
echo ${#array[n]}

# 注釋

單行使用#
多行使用 

:<<EOF

EOF

參數(shù)相關(guān)

# 參數(shù)個(gè)數(shù)
$#

# 所有的參數(shù)內(nèi)容
$*  # " 1 2 3 4 5 6"
$@ # "1" "2" "3" "4" "5" "6"

進(jìn)程相關(guān)

# 當(dāng)前進(jìn)程號(hào)
$$

# 后臺(tái)運(yùn)行的最后一個(gè)進(jìn)程id
$!

# 執(zhí)行返回碼
$?

算術(shù)運(yùn)行

# 算術(shù)運(yùn)算需要使用expr來完成,運(yùn)算符中間必須分隔
# *前必須加\
# MAC的expr語法為$((express))
val=`expr 1 \* 30`

關(guān)系運(yùn)算符

-ne # 不相等
-eq # 相等
-gt # 大于
-lt # 小于
-ge # 大于等于
-le # 小于等于

布爾運(yùn)算符

-a # and
&& # and

-o # or
|| # or
! # not

字符串運(yùn)算符

= #判斷是否相等
!= #不相等
-z #判斷長(zhǎng)度是否為0
-n #判斷長(zhǎng)度是否不為0

文件相關(guān)

-b # 檢測(cè)文件是否為塊設(shè)備
-c # 檢測(cè)文件是否為字符設(shè)備
-d # 檢測(cè)文件是否為目錄
-f # 檢測(cè)文件是否為普通文件
-g # 檢測(cè)文件是否設(shè)置了SGID位
-k # 檢測(cè)文件是否設(shè)置了粘著位
-p # 檢測(cè)文件是否為有名管道
-u # 檢測(cè)文件是否設(shè)置了SUID位
-r #檢測(cè)文件是否可讀
-w #檢測(cè)文件是否可寫
-x #檢測(cè)文件是否可執(zhí)行
-s #檢測(cè)文件是否為空
-e #檢測(cè)文件或目錄是否存在
-s #檢測(cè)文件是否為socket
-l #檢測(cè)文件是否為符號(hào)鏈接

流程控制相關(guān)

# if

if cond 
then
    statement
fi

# if else
if cond
then
    statement
else
    statement
fi

# if else-if 

if cond
then
    statement
elif cond2
then
    statement
else
    statement
# for 循環(huán)

for var in list
do
    statement
done

# 死循環(huán)
for (( ; ; ))
do

done
# while
while cond
do
    statement
done

# 死循環(huán)
while true
do

done

while :
do

done
# case 
case val in 
val1)
    statement
    ;;
val2)
    statement
    ;;
*)
    statement
    ;;
esac

Here Document

command << delimiter
    document
delimiter

# 作用就是將兩個(gè) delimiter 之間的內(nèi)容(Here Document Content 部分) 傳遞給command 作為輸入內(nèi)容。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Shell腳本條件測(cè)試 ? ? 在Shell腳本中各種條件結(jié)構(gòu)和流程控制結(jié)構(gòu)中會(huì)存在各種判斷比較,然后根據(jù)不同的判...
    Surpassme閱讀 1,075評(píng)論 0 1
  • 什么是Shell ? ? 簡(jiǎn)單來說Shell其實(shí)就是一個(gè)命令解釋器,而它的作用就是解釋并執(zhí)行用戶輸入的命令及程序。...
    Surpassme閱讀 2,833評(píng)論 1 24
  • 什么是Shell變量 ? ? 在初等數(shù)學(xué)數(shù)學(xué)方程式中,我們會(huì)經(jīng)常碰到類似于這樣的方程式:y=x+1 ,等號(hào)左右兩邊...
    Surpassme閱讀 1,431評(píng)論 1 9
  • Shell入門 什么是shell? Shell其實(shí)是一個(gè)命令解釋器,作用是解釋執(zhí)行用戶輸入的命令以及程序等,用戶每...
    酷酷的偉閱讀 497評(píng)論 0 1
  • 本節(jié)內(nèi)容 1. 三劍客簡(jiǎn)介 2. sed命令詳解 3. awk命令詳解 文本處理三劍客 在 Shell 下使用這些...
    WickJohn閱讀 229評(píng)論 0 0

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