shell的执行流控制
生活随笔
收集整理的這篇文章主要介紹了
shell的执行流控制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、for循環
for 定義變量 do 使用變量,執行動作 done 結束標志格式1: #!/bin/bash for WESTOS in `seq 2 2 10` doecho $WESTOS done格式2: for WESTOS in 1 2 3 doecho $WESTOS done格式3: for WESTOS in {10..1} doecho $WESTOS done格式4: for ((WESTOS=0;WESTOS<10;WESTOS++)) doecho $WESTOS done腳本練習:
check_host.sh
用此腳本檢測10臺與您當前主機直連主機是否網絡通常
如果網絡通常請顯示主機的ip列表
驗證:
二、 while
while true #條件為真 do #條件成立所作循環動作done3.until until false ##條件為假 do#條件不成立所作循環動作done三、until
until false ##條件為假 do#條件不成立所作循環動作done四、if
if then elif then ... else fi腳本練習:
check_file.sh
please input filename: file
file is not exist
file is file
file is direcory
此腳本會一直詢問直到用戶輸入exit為止
五、case
case $1 inword1|WORD1)action1;;word2|WORD2)action2;;*)action3 esac腳本練習
system_watch.sh disk memory upload (每秒顯示)
disk 監控磁盤使用情況
memory 監控內存使用情況
upload 監控啟動負載
六、 expect
問題腳本 #!/bin/bash read -p "what's your name:" NAME read -p "How old are you: " AGE read -p "Which objective: " OBJ read -p "Are you ok? " OKecho $NAME is $AGE\'s old study $OBJ feel $OK應答腳本 #!/usr/bin/expect set timeout 1 ##設置反應時間 set NAME [ lindex $argv 0 ] ###執行命令的第一串字符(空格為分割符號) set AGE [ lindex $argv 1 ] set OBJ [ lindex $argv 2 ] set FEEL [ lindex $argv 3 ] spawn /mnt/ask.sh expect {"name" { send "$NAME\r";exp_continue }"old" { send "$AGE\r";exp_continue }"objective" { send "$OBJ\r";exp_continue }"ok" { send "$FEEL\r" } } expect eof驗證:
腳本練習
auto_ssh 172.25.254.1 westos
可以自動連接目標主機當目標主機網絡不通時報錯
七、break,continue,exit
| contiue??? | 終止當此次前循環提前進入下個循環 |
| break | 終止當前所在語句所有動作進行語句外的其他動作 |
| exit | 腳本退出 |
?
總結
以上是生活随笔為你收集整理的shell的执行流控制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文本处理工具 awk-- 报告生成器
- 下一篇: shell 中的运算