Shell 學習筆記

2021-07-28 04:44:02 字數 2965 閱讀 9266

shell可以用來做什麼

來自菜鳥教程

read可用於讀取輸入

echo和printf都可以用於輸出

很多都沒寫出來,覺得太多了都寫好心累,比較不常用的要用再查好了。

#!/bin/bash

# #! 是乙個約定的標記,告訴系統這個指令碼用什麼直譯器執行

定義變數時,變數名和等號之間不能有空格

s="hello world"

a=1

使用變數時,在變數名前加$符號

s="hello world"

echo

$secho

$# 花括號可選

宣告唯讀變數,用readonly

s="hello world"

readonly s

刪除變數,用unset(unset命令不能刪除唯讀變數)

unset variable_name
s="hello \" $s \""

# 拼接字串直接連起來,不用加號

s="hello"s"me"

# 獲取字串長度用 # 號

echo

$# 提取子字串 s:start:end

echo

$# 查詢子字串 index 修改

echo `expr index "$s" is`

bash只支援一維陣列

陣列形式: 陣列名=(value1 value2 … valuen)

以空格隔開

# 讀取陣列元素值

echo

$# 獲取整個陣列

echo

$echo

$# 獲取陣列長度

echo

$echo

$

引數處理

說明$0 $1 $2

分別為第

一、二、三個引數, $0為檔名

$#傳遞到指令碼的引數個數

$* $@

以乙個單字串顯示所有向指令碼傳遞的引數,不同的是$@每個引數左右會加上雙引號

$$指令碼執行的當前程序的id號

$!後台執行的最後乙個程序的id號

$?顯示最後命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤

原生的bash不支援數**算,但可以用其他命令來實現

表示式和運算子之間要有空格

完整的表示式要被「 包含加減乘除

條件表示式要放在方括號之間

val=`expr 2 + 2`

[$a == $b]

乘號(*)前要加反斜槓(\)才能實現乘法運算

運算子

說明-eq

==-ne

!=-gt

>

-lt<

-ge>=

-le<=

if [$a

-gt$b]

then

echo

">"

else

then

echo

"<="

fi

if condition1

then

command1

elif condition2

then

command2

else

commandn

fi

for var in item1 item2 ... itemn

do command1

command2

...commandn

done

while condition

docommand

done

until condition

docommand

done

case 值 in

模式1)

command1

command2

...commandn

;;模式2)

command1

command2

...commandn

;;esac

也有breakcontinue

覺得跟其他語言的函式相差不多

舉兩個例子說明

#!/bin/bash

# author:菜鳥教程

# url:www.runoob.com

funwithreturn

()funwithreturn

echo

"輸入的兩個數字之和為 $? !"

#!/bin/bash

# author:菜鳥教程

# url:www.runoob.com

funwithparam

() !"

echo

"第十乙個引數為 $ !"

echo

"引數總數有 $# 個!"

echo

"作為乙個字串輸出所有引數 $* !"

}funwithparam 123

4567

893473

shell 學習筆記

shell 是解釋型語言 移植性強課對應不同的直譯器 bin sh f 變數開頭以乙個字母或者下劃線,後接任意長度的字母 數字或者下劃線。命令 commod op 引數 輸入 輸出 重定向管道 echo printf 大口如小口出。特殊檔案 dev null bit bucket 刪除所有輸入的資料...

shell學習筆記

shell指令碼在linux下開發經常需要用到,shell的指令碼可以幫助使用者自動化地和作業系統進行互動,起到了提高效率的作用。學習一門語言,通常需要實戰演練編碼除錯,shell該如何除錯呢?使用bash x命令即可。vi demo.sh敲入 bin bash echo 1 echo date y...

shell學習筆記

1 shell檔案的第一行都必須是 bin sh 也可以有其他路徑,這裡我們只以這個為例 2 定義變數 a value 中間不能有空格 呼叫方法 echo a 3 shell常用的條件測試 備註 方括號兩側必須要有空格,f lt等兩側也必須要有空格 a f file 判斷 file是否是乙個檔案 b...