使用請參考:shell腳本 if的使用和判斷條件
if判斷語句
exit跳出判讀語句
不加exit的結果
read
-n(不換行)
判斷是否輸入的是數字
read age
[[ $age =~ ^[0-9]+$ ]]
if [ $? -ne 0 ]; then
echo "你輸入的不是一個數字"
exit 1
fi
case判斷語句
#!/bin/bash
cat <<EOF
###########################################
歡迎學習shell編程
###########################################
EOF
echo
read -p "你是否同意繼續學習(y/n):" ans
case $ans in
(y|Y)
echo "非常好,進行下一步操作!"
;;
(n|N)
echo "你不同意,退出!"
exit 1
;;
(*)
echo "只能輸入y/n,不能輸入其他的"
exit 1;;
esac
echo ----------------------------------------
echo
echo '這個是腳本的正文'
seq 用於生成從一個數到另一個數之間的所有整數。
-w 指定輸出數字同寬
`seq 1 10`----------------------為反引號
循環的控制語句
break:
如果遇到了break,break的語句不再執行了,而且要停止循環
輸出6,先打印在跳出
break跳出用法
跳出一層循環,break后面默認為1
跳出兩層循環
停止第三層循環
continue:
如果遇到了continue的話,continue后面的語句不再執行了
直接進入下一次循環
for循環實現簡單的用於查看局域網中那個IP使用,那個IP未使用
腳本內容如下:
#!/bin/bash
for i in $(seq 253)
do
if ping 192.168.0.$i -c 2;
then
echo "192.186.0.$i is use" >> /mnt/up.txt
else
echo "192.168.0.$i id not use" >> /mnt/down.txt
fi
done
while循環,條件成立,則執行do和done之間的命令
declare變量聲明
-i:將變量聲明為整型
寫一個腳本統計文件行數
head用來顯示檔案的開頭至標准輸出當中,默認head命令打印其相應文件的開頭10行。
Linux輸出重定向>和>>的區別是什么?簡單說>是覆蓋,>>是追加
# head /etc/passwd > passwd
命令查看文件行數
# wc -l /etc/passwd
統計行數腳本如下:
使用
while死循環
不停的開啟vsftpd這個服務
until循環,條件不成立,則執行do和done之間的語句。
until和while相反。
until 循環執行一系列命令直至條件為 true 時停止。