Shell指令碼學習

2021-08-07 20:00:52 字數 1770 閱讀 9380

定義變數時,變數名不加美元符號如:name="com"

注意,變數名和等號之間不能有空格,這可能和你熟悉的所有程式語言都不一樣。同時,變數名的命名須遵循如下規則:

首個字元必須為字母(a-z,a-z)。

中間不能有空格,可以使用下劃線(_)。

不能使用標點符號。

不能使用bash裡的關鍵字(可用help命令檢視保留關鍵字)。

root@liujie-desktop:/software/shell# expr 2 + 2

4root@liujie-desktop:/software/shell# expr 2+2

2+2root@liujie-desktop:/software/shell# a=10

root@liujie-desktop:/software/shell# b=20

root@liujie-desktop:/software/shell# echo `expr $a + $b`

30

算術運算1 :利用expr

#!/bin/sh

echo $0

echo $$

val=`expr 2 + 2` #運算子和表示式之間必須有空格

echo "$val"

a=10;

b=20;

v=`expr $a \* $b` #要用轉義字元\*,否則語法錯誤

echo "v :$v"

root@liujie-desktop:/software/shell# ./stu.sh 

./stu.sh

3515

4v :200

算數運算2:利用let

((i=$j+$k))    等價於 i=`expr $j + $k`

((i=$j-$k))     等價於   i=`expr $j -$k`

((i=$j*$k))     等價於   i=`expr $j \*$k`

((i=$j/$k))     等價於   i=`expr $j /$k`

root@liujie-desktop:/software/shell# let b=1+2

root@liujie-desktop:/software/shell# echo $b

3

算術運算3 : 利用$

root@liujie-desktop:/software/shell# s=$[1+2]

root@liujie-desktop:/software/shell# echo $s

3

關係運算和布林運算

[ $a  -eq  $b ]    equal

ne : not equal

gt  :greater than

lt : litter than

ge : greater  equal

le : liiter equal

! 非-o :or

-a : and

字串運算子

a和b是字串

[ $a = $b ]    

[ $a != $b ]

[ -z $a ]    zero

[ -n $a ]  not zero

[ $a  ] 是否為空 

shell 指令碼學習

case var in pattern statement esac case 的指令碼語法是雙分號結尾的。sed e s i.86 i386 查詢替換。sed 流編輯器 將輸入流中的i.86替換成i386。是個萬用字元。輸入流的形式可能是 管道,檔案。shell d mkdir p 指令碼的條件執...

shell指令碼學習

shell 學習 1.shell 解釋型語言,有很多種直譯器。預設是 bin bash。shell指令碼第一行要寫 bin bash 2.shell指令碼執行的方法 1 sh sh 2 chmod a x sh sh 注意,一定要寫成.sh,而不是 sh。執行其它二進位制的程式也一樣,直接寫 sh,...

shell指令碼學習

反引號 反引號是命令替換,命令替換是指shell可以先執行中的命令,將輸出結果暫時儲存,在適當的地方輸出。語法 command 反引號是tab鍵的上乙個按鍵 重定向 如果檔案不存在,將建立新的檔案,並將資料送至此檔案 如果檔案存在,則將資料新增在檔案後面 如果檔案不存在,同上,如果檔案存在,先將檔案...