1.基礎
#!/bin/bash //bash腳本第一句都是這個,他會讓系統指定以bash來解釋這個腳本
# //shell腳本注釋符號
2.變量和使用
HOME="/home" //注意賦值不要有空格
a=123
HOME_LIST=$(ls /home) //把命令的執行結果賦值給變量
ehco $HOME //$ 符號是獲得變量HOME的值
a=a+1
系統變量:
{GetProperty(Content)} 這個程序的執行名字
$n 這個程序的第n個參數值,n=1...9
$* 這個程序的所有參數
$# 這個程序的參數個數
$ 這個程序的PID
$! 執行上一個背景指令的PID
$? 上一個指令的返回值
3.if語句
if [ "22" -lt "33" ] then //注意空格
echo "22 less than 33"
else
echo "no"
fi //if語句的結束
4.case語句
echo "enter a number"
read ans //讀取一個變量read
case $ans in
1)
echo "you numer is $ans"
;; //注意符號是兩個 ;
2)
echo "you number is 2"
;;
[3-9])
echo "you number is $ans"
;;
*) //*通配符
echo "others"
esac
5.比較運算符
運算符 描述 示例
文件比較運算符
-e filename 如果 filename 存在,則為真 [ -e /var/log/syslog ]
-d filename 如果 filename 為目錄,則為真 [ -d /tmp/mydir ]
-f filename 如果 filename 為常規文件,則為真 [ -f /usr/bin/grep ]
-L filename 如
果 filename 為符號鏈接,則為真 [ -L /usr/bin/grep ]
-r filename 如果 filename 可讀,則為真 [ -r /var/log/syslog ]
-w filename 如果 filename 可寫,則為真 [ -w /var/mytmp.txt ]
-x filename 如果 filename 可執行,則為真 [ -L /usr/bin/grep ]
filename1 -nt filename2 如果 filename1 比 filename2 新,則為真 [ /tmp/install/etc/services -nt /etc/services ]
filename1 -ot filename2 如果 filename1 比 filename2 舊,則為真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]
字符串比較運算符 (請注意引號的使用,這是防止空格擾亂代碼的好方法)
-z string 如果 string 長度為零,則為真 [ -z "$myvar" ]
-n string 如果 string 長度非零,則為真 [ -n "$myvar" ]
string1 = string2 如果 string1 與 string2 相同,則為真 [ "$myvar" = "one two three" ]
string1 != string2 如果 string1 與 string2 不同,則為真 [ "$myvar" != "one two three" ]
算術比較運算符
num1 -eq num2 等於 [ 3 -eq $mynum ]
num1 -ne num2 不等於 [ 3 -ne $mynum ]
num1 -lt num2 小於 [ 3 -lt $mynum ]
num1 -le num2 小於或等於 [ 3 -le $mynum ]
num1 -gt num2 大於 [ 3 -gt $mynum ]
num1 -ge num2  
; 大於或等於 [ 3 -ge $mynum ]
6.bash中幾種循環
6.1. for name [ in word ] ; do list ; done
6.2. for (( expr1 ; expr2 ; expr3 )) ; do list ; done //注意有2層括號
6.3 while [expr] do list; done
其中list簡單說就是一串由操作符(operator ;、&、&&、||)
分各給出一個簡單例子:
1.
for filename in $(ls)
do
cat $filename
done
2.
for((i=0; i<10; i++))
do
echo $i
done
3.
x=1
sum=0
while [ $x -le 10 ] //注意[ ] 兩邊的空格
do
let sum=sum+$x //shell中算術計算使用let
let x=x+1
done
echo $sum