鳥哥13章的東西
shell script速度較慢,适合用于系統管理,但不适合處理大量數值運算
var=$((運算内容)) 可以用來做變量的加減乘除求餘運算
total=$(($firstnum*$secnu))
declare -i total="$firstnum*$secnu"
上面兩句功能一樣,建議用第一種
echo -e "\nYour full name is: $firstname $lastname"
-e表示後面 \表示轉義,例子表示了在echo中顯示兩個變量的方法
file1=${filename}${date1}
一個變量是另兩個變量的連接配接的寫法
執行script
sh scriptname 在子程序中執行,變量不會出現在父程序
source scriptname 在父程序中執行,變量會出現在父程序
test :測試
test -e /test && echo "exist" || echo "Not exist" 測試檔案名/test是否存在 目錄檔案都可以
test -f sh03.sh && echo "exist" || echo "Not exist" 測試檔案是否存在 必須是檔案
test -d abc && echo "exist" || echo "Not exist" 測試目錄是否存在 必須是目錄
下面代碼測試檔案是否存在 以及檔案的執行權限
[]: 表判斷,但是挨着括号的兩端必須都是空格
[ "$yn" == "Y" -o "$yn" == "y" ] && echo "OK, CONTINUE" && exit 0 判斷yn等于Y或y,任意一個都傳回true
腳本後面帶參數:
$0 代碼檔案名 $1代碼後面第一個參數 $2代碼後面第二個參數....
$@ 代表除檔案名之外的所有參數 $# 表後面接的參數個數
下面例子輸入少于兩個參數會退出 會顯示所有參數和第一第二個參數
shift num: 移除後面num個變量
條件判斷式
if [] ; then
elif []; then
else
fi
netatat -tuln 獲得目前主機啟動的服務
80:www
22:ssh
21:ftp
25:mail
檢測常見端口
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLi0zaHRGcWdUYuVzVa9GczoVdG1mWfVGc5RHLwkzX39GZhh2csATMflHLwEzX4xSZz91ZsADMx8FdsYkRGZkRG9lcvx2bjxSa2EWNhJTW1AlUxEFeVRUUfRHelRHL2EzXlpXazxyayFWbyVGdhd3LcV2Zh1Wa9M3clN2byBXLzN3btg3PnVGcq5CO5MzY0kjNhRDZxIjNlVDN3EGNyEGNjFDMkJTO2EmMi9CX4AzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL0M3Lc9CX6MHc0RHaiojIsJye.jpeg)
case 條件判斷
函數:
後面接内置參數和shell的内置參數方法一樣 也是$1 $2 ...
循環:
買足條件就循環
滿足條件就結束循環
for循環
調試script
sh [-nvx] scriptname.sh
-n 不執行,僅檢查文法
-v 執行前把script内容輸出到螢幕
-x 将使用到的script内容輸出到螢幕 debug很有用