1、規範shell
2、變量bash
練習:ide
#!bin/bash dir=`pwd` echo "當前所在的目錄是:$dir"
#!bin/bash # 進入/etc目錄下 cd /etc # 計算文件個數 num=`ls -al|wc -l` # 輸出 echo "/etc下文件個數爲:$num"
#!bin/bash read -p "請輸入指定目錄:" dir cd $dir # 計算文件個數 num=`ls -al|wc -l` # 輸出 echo "$dir下文件個數爲:$num"
read 用法函數
3、參數傳遞測試
練習:spa
#!/bin/bash echo "這個數據是$1" echo "這個數據是$2" echo "這是$0" echo "這是$@" echo "這是$#"
結果:3d
4、重定向code
把命令的結果輸出到文件中blog
5、條件判斷ip
一、if...else
if [ 條件 ] then 語句 else 語句 fi ##################### if [ 條件 ];then 語句 else 語句 fi
練習:
#!/bin/bash dir=/root command=`ls $dir` if [ "$command" == "" ];then echo "目錄爲空" else echo "目錄不爲空" fi
#!/bin/bash read -p "請輸入目標目錄:" dir command=`ls $dir` if [ "$command" == "" ];then echo "目錄爲空" else echo "目錄不爲空" fi
#!/bin/bash read -p "請輸入用戶名和密碼:" username password if [ "$username" == "admin" -a "$password" == "123456" ];then echo "用戶名和密碼正確" else echo "用戶名或密碼不正確" fi
#!/bin/bash read -p "請輸入一個數字:" num if [ "$num" -gt 0 ] then ((num++)) echo $num else ((num--)) echo $num fi
#!/bin/bash read -p "請輸入對應的目錄:" dir if test -d $dir then num=`ls $dir|wc -l` echo "目錄$dir下的文件個數爲:$num" else echo "目錄$dir不存在" fi
二、if...elif..else
if [ 條件 ] then 語句 elif [ 條件 ] then 語句 elif [ 條件 ] then 語句 .... else 語句 fi
練習:
判斷學生的成績,範圍在90-100提示優秀,80-90之間提示良好,70-80之間則提示通常,60-70之間提示及格。其餘則提示不及格
#!/bin/bash read -p "請輸入學生的成績:" score if [ "$score" -gt 90 -a "$score" -lt 100 ] then echo "優秀" elif [ "$score" -gt 80 -a "$score" -lt 90 ] then echo "良好" elif [ "$score" -gt 70 -a "$score" -lt 80 ] then echo "通常" elif [ "$score" -gt 60 -a "$score" -lt 70 ] then echo "及格" else echo "不及格" fi
判斷用戶輸入的內容是否爲空,爲空則提示,不爲空則判斷是否爲目錄,不爲目錄則判斷是否爲文件,不然提示錯誤信息
#!/bin/bash read -p "請輸入內容:" content if [ -z "$content" ] then echo "輸入內容爲空" elif [ -d "$content" ] then echo "是一個目錄" elif [ -f "$content" ] then echo "是一個文件" else echo "輸入錯誤" fi
三、case
case $變量名 in "值") 語句;; "值") 語句;; "值") 語句;; ..... *) 語句;; esac
練習:
#!/bin/bash read -p "請輸入產品編號:" chr case $chr in "001") echo "檯燈";; "002") echo "風扇";; "003") echo "電腦";; *) echo "默認是空調";; esac
#!/bin/bash read -p "請輸入對客服的滿意度:" chr case $chr in [0-3]) echo "不滿意";; [4-6]) echo "滿意";; [7-9]) echo "很是滿意";; esac
6、循環
一、for
for 變量名 in 列表 do 語句 done
練習:
#!/bin/bash #循環 for i in 1 2 3 4 5 6 7 8 9 10 do echo $i done
#!bin/bash for i in `seq 1 2 10` do echo $i done
二、while
while [ 條件 ] do 命令 done
練習:
#!bin/bash i=1 sum=0 while [ "$i" -le 100 ] do ((sum=sum+i)) ((i++)) done echo $sum
7、函數
函數名(){
代碼
}
練習:
#!/bin/bash # 定義函數 add(){ sum=$(($1+$2)) return $sum } # 從鍵盤輸入 read -p "請輸入第一個數字:" aNum read -p "請輸入第一個數字:" bNum echo "輸入的兩個數分別爲:$aNum 和 $bNum" add $aNum $bNum # 輸出返回值 echo "兩個數之間的和爲:$?"
輸入一個目錄,判斷目錄是否存在,若是不存在則給出提示,若是存在則提示輸入要建立的文件名,判斷建立的文件是否存在,若是不存在,則繼續建立,不然提示該文件已經存在,用函數實現
#!/bin/bash # 建立文件函數 create_file(){ # 進入目錄 cd $1 # 提示用戶輸入文件名 read -p "請輸入須要建立的文件名:" filename # 判斷文件是否存在 if test -e $filename then echo "文件已存在" else echo "文件不存在" echo "開始建立文件..." touch $filename echo "文件建立成功" fi } # 提示用戶輸入 read -p "請輸入目錄名:" dir if test -d $dir then # 調用建立文件函數 create_file $dir else echo "目錄$dir不存在" fi