目录
for 循环
#!/bin/bash
for i in {1..10}
do
useradd "user$i"
done
~
案例1
#!/bin/bash
#ping
#常规网络测试脚本
ip=192.168.238.132
ping -c1 -W1 $ip &> /dev/null
if [ $? -eq 0 ];then
echo "$ip" | tee -a ip.txt
fi
~
#!/bin/bash
#ping
#测试多个对象
for i in {100..133}
do
ip=192.168.238.$i
ping -c1 -W1 $ip &> /dev/null
if [ $? -eq 0 ];then
echo "$ip" | tee -a ip.txt
fi
done
案例2
#!/bin/bash
#name
#time
PASSWORD_FILE=/root/user.txt
#设置循环,读取文件,创建用户
for user in `cat $PASSWORD_FILE`
do
id $user &> /dev/null
#如果用户不存在,则创建用户,否则提示已经存在
if [ $? -eq 0 ];then
echo "$user:用户已存在"
else
useradd $user
echo "$pass" | passwd --stdin $user &> /dev/null
#判断用户是否创建成功
if [ $? -eq 0 ];then
echo "$user:用户创建成功"
else
echo "$user:用户创建失败"
fi
fi
done
案例2合并
1 #!/bin/bash
2 #name
3 #time
4 #UfileCreateU.sh
5 pass=123
6 PASSWORD_FILE=/root/user.txt
7 #判断脚本是否有参数
8 if [ $# -eq 0 ];then # $#: 传递给脚本或者函数参数的个数,计数的
9 echo "usage:$0 filename" # $0:当前脚本文件名
10
11 #判断用户是否是文件
12 if [ ! -f $PASSWORD_FILE ];then
13 echo "erro filename"
14 else
15 echo "正确文件"
16
17 #设置循环,读取文件,创建用户
18 for user in `cat $PASSWORD_FILE`
19 do
20 id $user &> /dev/null
21
22 #如果用户不存在,则创建用户,否则提示已经存在
23 if [ $? -eq 0 ];then
24 echo "$user:用户已存在"
25 else
26 useradd $user
27 echo "$pass" | passwd --stdin $user &> /dev/null
28
29 #判断用户是否创建成功
30 if [ $? -eq 0 ];then
31 echo "$user:用户创建成功"
32 else
33 echo "$user:用户创建失败"
34 fi
35 fi
36 done
37 exit 2
38 fi
39 exit 1
40 fi
41
案例3
前提1:完成密钥登录配置
ssh-keygen
ssh-copy-id IP地址 /*要登录的IP地址*/
ssh root@Ip 测试
######################36---60 行 其他为上个案例得添加
#!/bin/bash
2 #name
3 #time
4 #UfileCreateU.sh
5 pass=123
6 PASSWORD_FILE=/root/user.txt
7 #判断脚本是否有参数
8 if [ $# -eq 0 ];then # $#: 传递给脚本或者函数参数的个数,计数的
9 echo "usage:$0 filename" # $0:当前脚本文件名
10
11 #判断用户是否是文件
12 if [ ! -f $1 ];then
13 echo "erro filename"
14 else
15 echo "正确文件"
16
17 #设置循环,读取文件,创建用户
18 for user in `cat $PASSWORD_FILE`
19 do
20 id $user &> /dev/null
21
22 #如果用户不存在,则创建用户,否则提示已经存在
23 if [ $? -eq 0 ];then
24 echo "$user:用户已存在"
25 else
26 useradd $user
27 echo "$pass" | passwd --stdin $user &> /dev/null
28
29
30
31
32 #判断用户是否创建成功,如果成功则改密码
33 if [ $? -eq 0 ];then
34 echo "$user:用户创建成功"
35 read -p "请输入用户密码:" password
36 #循环调用IP地址
37 for i in $(cat ip.txt)
38 do
39 #测试IP是否在线
40 {
41 ping -c1 -W1 $i &> /dev/null
42 if [ $? -eq 0 ];then
43 #修改密码
44 ssh $i "echo $password | passwd --stdin root"
45 #修改成功与否记录
46
47 if [ $? -eq 0 ];then
48 echo $i >> ok.txt
49 ssh $i
50 echo "$i 登录成功" cat $user
51
52 else
53 echo $i >> fail.txt
54 fi
55 #不在线得主机记录
56 else
57 echo $i >> meigai.txt
58 fi
59 }&
60 done
61
62
63 else
64 echo "$user:用户创建失败"
65 fi
66 fi
67 done
68 exit 2
69 fi
70 exit 1
71 fi
72
Shell循环:while until
Expect
#!/usr/bin/expect
2 #expect.sh
3 #远程登录128服务器
4 spawn ssh root@192.168.238.128 #spawn expect 内部命令,启动一个shell程序
5
6 expect { #expect 期望哪些内容
7 "yes/no"{ send "yes\r;" #yes/no 就发送 \r 回车
8 #exp_continue,跳过循环,就继续下一条语句
9 exp_continue "password:" { send "123456\r"};
10 }
11 }
12 interact #允许用户交互
13
版权声明:本文为benziwu原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。