指令碼程式設計:
順序結構
選擇結構
ifcase
迴圈結構
forwhile
until
while迴圈:適用於迴圈次數未知的場景,要有退出條件
語法:while condition; do
statement
...done
計算100以內所有正整數的和
#!/bin/bash
declare -i i=1
declare -i sum=0
while [ $i -le 100 ]; do
let sum+=$i
let i++
done
echo $sum
練習:轉換使用者輸入的字元為大寫,除了quit:
#!/bin/bash
#read -p "input something: " string
while [ $string != 'quit' ]; do
echo $string | tr 'a-z' 'a-z'
read -p "input something: " string
done
練習:每隔5秒檢視hadoop使用者是否登入,如果登入,顯示其登入並退出;否則,顯示當前時間,並說明hadoop尚未登入:
#!/bin/bash
#who | grep "hadoop" &> /dev/null
retval=$?
while [ $retval -ne 0 ]; do
echo "`date`, hadoop is not log."
sleep 5
who | grep "hadoop" &> /dev/null
retval=$?
done
echo "hadoop is logged in."
寫乙個指令碼:
1) 顯示乙個選單給使用者:
d|d) show disk usages.
m|m) show memory usages.
s|s) show swap usages.
*) quit.
2) 當使用者給定選項後顯示相應的內容;
擴充套件:當使用者選擇完成,顯示相應資訊後,不退出;而讓使用者再一次選擇,再次顯示相應內容;除了使用者使用quit;
#!/bin/bash
#cat << eof
d|d) show disk usages.
m|m) show memory usages.
s|s) show swap usages.
*) quit.
eofread -p "your choice: " choice
while [ $choice != 'quit' ];do
case $choice in
d|d)
echo "disk usage: "
df -ph ;;
m|m)
echo "memory usage: "
free -m | grep "mem" ;;
s|s)
echo "swap usage: "
free -m | grep "swap" ;;
*)echo "unknown.." ;;
esac
read -p "again, your choice: " choice
done
練習:寫乙個指令碼
從鍵盤讓使用者輸入幾個檔案,指令碼能夠將此幾個檔案歸檔壓縮成乙個檔案;
read:
-p 「prompt": 給出提示
Shell指令碼程式設計while迴圈
while 語句 do 執行語句 done接下來將會通過兩個簡單並且經常的使用的例子講解 bin bash i 1while i le 10 do i expr i 1 done echo i其中lele le表示不大於,exp rexpr expr 表示是相加運算 原始檔為 1 192.168.1...
Shell程式設計中的while迴圈
while迴圈是shell指令碼中最簡單的一種迴圈,但條件滿足時,while迴圈就重複執行一組語句,當條件不滿足時,就退出while迴圈。while condition do statements done condition 表示判斷條件,statements表示執行的語句 可以多條 do 和 d...
shell程式設計 while和until迴圈
while迴圈是shell指令碼中最簡單的一種迴圈,當條件滿足時,while重複地執行一組語句 當條件不滿足時,就退出while迴圈。shell while迴圈的用法如下 while condition dostatements donecondition表示判斷條件,statements表示要執行...