定義變數時,變數名不加美元符號如: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鍵的上乙個按鍵 重定向 如果檔案不存在,將建立新的檔案,並將資料送至此檔案 如果檔案存在,則將資料新增在檔案後面 如果檔案不存在,同上,如果檔案存在,先將檔案...