**holle world進入shell編程的世界**
用`vim test.sh`新建一份源碼如下:
~~~
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
#上邊三行是固定格式,聲明使用的shell,聲明環境變量
echo -e "holle world!\n"
exit 0
~~~
~~~
sh test.sh
./test.sh
~~~
用以上兩種方式都可以執行sh文件。
這就是一個基本的shell腳本實例
* * * * *
**Shell Script默認變量**
~~~
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
echo "The Script name is ==>$0"
echo "Total parameter is ==>$#"
["$#" < 2] && echo "The number of parameter is less than 2. stop here."\
&& exit 0
echo "your whole parameter is ==>'$@'"
echo "The 1st parameter is ==>$1"
echo "The 2st parameter is ==>$2"
~~~
代碼說明:
$# 代表后接參數的"個數"
$@ 代表每個參數變量的內容
$0 代表文件名
$1 第一個參數
$2 第二個參數
* * * * *
**條件判斷**
~~~
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
read -p "Plase input (Y/N):" yn #獲取輸入
if [ "$yn" == "Y" ] || [ "$yn" == "y"] ; then
echo "OK,Continue"
elif [ "$yn" == "N" ] || [ "$yn" == "n"] ; then
echo "NO,Stop!"
else
echo "I don't know what you choice is"
fi #用fi結束判斷語句
~~~
**函數功能和case分支(類似C的函數和switch語句)**
~~~
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
#必須在代碼頭部聲明函數
function printit(){
echo "Your choice is $1"
}
echo "This program will print your choice !"
case $1 in
"one")
printit 1
;;
"two")
printit 2
;;
"three")
printit 3
;;
*)
echo "Usage $0 {one|two|three}"
;;
esac
~~~
**不定循環和固定循環**
不定循環:
~~~
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
s=0 #累加數
i=0 #計數器
while [ "$i" != "100" ]
do
i=$(($i+1))
s=$(($s+$i))
done
echo "The result of '1+2+3+...100' is ==>$s"
~~~
固定循環:
~~~
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
read -p "Plase input a number, I will count 1+2+..your_input:" num
s=0
for (( i=1; i<=$num; i=i+1))
do
s=$(($s+$i))
done
echo "The result of '1+2+..+$num' is ==> $s"
~~~
* * * * *
**shell script 的追蹤與調試**
`sh [-nvx] script.sh`
> -n 不執行script,僅查詢語法錯誤,無錯誤不回顯
> -v 在執行script前,先將script內容輸出到屏幕上
> -x 將使用到的script內容顯示到屏幕上
和其它的任何編程語言一樣,最好的學習方式是多看多寫,熟能生巧也。
試著模仿別人的代碼修改成自己的樣式,多加練習。
- 序言
- kali-Linux基本配置
- 忘記Root密碼
- 更新系統和軟件包
- Bash命令
- shell編程
- Linux的文件權限配置
- Linux日志文件
- 信息收集
- 被動信息收集
- 繞過CDN找真實IP
- IDS識別
- p0f-OS識別
- nmap端口掃描
- 搜索引擎
- 內網主機發現
- 使用SET社工包釣魚
- 漏洞發現
- Nessus策略漏掃
- AWVS集成漏掃
- w3af
- 其它漏掃
- 抓包改包
- Burpsite
- Fiddler
- Wireshark
- 漏洞利用
- Hydra爆破
- SQLmap
- Metasploit
- Beef
- antSwrod
- XSS前端工具
- Windows緩沖區溢出
- 后漏洞利用階段
- 免殺一句話
- 上傳工具
- 嗅探
- 本地提取
- 隱藏痕跡