博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell(3)应用
阅读量:6943 次
发布时间:2019-06-27

本文共 1938 字,大约阅读时间需要 6 分钟。

Shell脚本(三)

一•for循环语句:(循环次数未知)

for 变量名取值列表

do
命令序列
done

(1) 根据姓名列表批量添加用户

vim /root/user.txt
zhangsan
wangwu
xiaobai
vim /root/uadd.sh
#!/bin/bash
ULIST=$(cat /root/user.txt)
for uname in $ULIST
do
useradd $uname
echo "123456" | passwd --stdin $uname&>/dev/null
done
sh /root/uadd.sh
cat /etc/passwd

① 制定员工列表文件

② 编写脚本(for循环语句格式)

③ 执行脚本

(2) 根据IP地址检查主机状态

vim /root/ipadds.txt
192.168.1.1
192.168.1.2
192.168.10.1
vim chkhosts.sh
#!/bin/bash
HLIST=$(cat /root/ipadds.txt)
for IP in $HLIST
do
ping -c 3 -i 0.2 -W 3 $IP &>/dev/null
if [ $? -eq 0 ]
then echo "host $IP is up"
else echo "host $IP is down"
fi
done
chmod +x chkhosts.sh
sh chkhosts.sh

① 制定IP地址列表

② 编写脚本(for循环语句格式)

③ 执行脚本

二•while循环语句:(循环次数已知)

while 条件测试

do
命令序列
done

(1) 批量添加有规律编号的用户:

① 使用I控制用户名称的编号
② 在循环内部通过let ++ (等同于 i= ‘expr $i + 1’ )来使i增加,以此类推。

(2) 猜价格游戏:

vim /pricegame.sh
#!/bin/bash
price=$(expr $RANDOM % 1000 )
times=0
echo "price between 0 and 999 pelease input it "
while true
do
read -p "input price:" int
let times++
if [ $price -eq $int ] ; then
echo "yes,you are right."
echo "you have anwser $times time"
exit 0
elif [ $int -gt $price ] ; then
echo "price is too high"
else
echo "price is too low"
fi
done
chmod +x /pricegame.sh
./pricegame.sh

① 通过环境变量RANDOM可获得一个小于2的十六次方的随机整数,计算其与1000的余数可以获得0~999的随机价格

② 反复测试操作可以通过一ture作为测试条件的while循环实现
③ 当用户猜中事中止操作
④ 使用变量来几率操作次数

三•case分支语句:

case 变量值 in

模式1)
命令序列1
;;
模式2)
命令序列2
;;
……
*)
默认命令序列
esac

(1) 击键类型识别(case 分支语句格式):

(2) 编写系统服务脚本(case 分支语句格式):

vim /myprogs

case "$1" in
start)
echo -n "zhengzai qi dong $sleep fuwu"
if sleep 7200 &
then
echo "OK"
fi
;;
stop)
echo -n "zheng guan bi dong sleep fuwu"
pkill "sleep" &/dev/null
echo "OK"
;;
status)
if pgrep "sleep" &>dev/null
then
echo "fuwuyikaiqi"
else
echo "fuwuyitongzhi"
fi
;;
restart)
$0 stop
$0 start
;;
*)
echo "tongaf: $0 {start|stop|restart|status}"
esac
chmod +x /myprogs
./myprogs start
./myprogs status
./myprogs stop

转载于:https://blog.51cto.com/13468179/2163600

你可能感兴趣的文章
SilverLight之向后台请求数据-WebClient
查看>>
2008server安装Intel I217V网卡驱动
查看>>
安卓应用获取权限判断
查看>>
hdu 1695(欧拉函数 容斥定理)
查看>>
CentOS 6.7安装MySQL
查看>>
Docker容器互联
查看>>
Linux基础知识--文件操作
查看>>
java+jsp+mysql网页制作总结(3)
查看>>
DAY6-小变化(java提示框)-2018-1-16
查看>>
mysql在表的某一位置增加一列、删除一列、修改列名
查看>>
iOS 网络与多线程--3.异步Get方式的网络请求(非阻塞)
查看>>
Excel相同内容如何设置相同的背景色
查看>>
LCA问题
查看>>
计算机基础知识
查看>>
论文学习及报告总结
查看>>
Oracle中创建含有Date时间的字段的表
查看>>
《1024伐木累》-炒股赚钱,大保健
查看>>
HTML5秘籍(第2版) 中文pdf扫描版
查看>>
51nod 1179 最大的最大公约数
查看>>
201521460001网络攻防实验
查看>>