for
variable
do
statement1
statement2
...
done
或者
for
variable
in
$@
或
$*
do
statement1
statement2
...
done
例如:[root@localhost test5] # vim 1.sh#!/bin/bashfor argdoecho $argdone[root@localhost test5] # bash 1.sh {1..6}123456
类C风格的for循环语句
for
((expression1;expression2;expression3))
do
statement1;
statement2;
...
done
批量创建用户:
用户名以
test
开头,按数字序号变化;
一共添加
30
个账号,即
test01
,
tes02...,test30
用户初始密码为
123456
[root@localhost test5]
# vim add_user.sh
#!/bin/bash
for
(
(i
=
1
;i<
=
30
;i
++
))
do
if
[
$i
-lt
10
]
then
user
=
test0
$i
else
user
=
test
$i
fi
if
! id
-u
$user
&> /dev/null
then
useradd
$user
echo
"123456"
| passwd
--stdin
$user
&> /dev/null
else
echo
"
$user
is exists..."
fi
done
注意:可以简化写法,直接用
for
带列表的循环,这样就不用
for
里面嵌套
if
判断
比如
for i
in
{01..30}
编写一个
Shell
程序,实现判断当前网络(假定为
192.168.1.0/24
,根据实际情况实现)里,当
前在线用户的
IP
有哪些。
[root@localhost test5]
# vim online_user.sh
#!/bin/bash
for
(
(i
=
1
;i<
=
254
;i
++
))
do
if
ping
-c
2 192
.168.1.
$i
&>/dev/null
then
echo
"192.168.1.
$i
is up..."
else
echo
"192.168.1.
$i
is down..."
fi
done