#!/bin/bash
# for有多种形式
for item in 1 2 3 4 5; do
echo "value: $item"
done
for item in {"Hello World!",a,bc,1372}; do
echo "${item}"
done
for item in {a..z}; do
echo "${item}"
done
for ((i = 0; i < 10; i++)); do # 数值的计算需要加小括号
echo "${i}"
done
for((i=0;i<n;i++)); do
for((j=0;j<m;j++)); do
echo "${i}, ${j}"
done
done
for col in $(docker images | awk '{ print $1":"$2 }'); do
echo "${col}" | cut -d ':' -f 1
echo "${col}" | cut -d ':' -f 2
done
#!/bin/bash
#给变量s赋值
s=0
#for循环,变量i作为计数值从1开始,循环100次
for ((i=1;i<=100;i=i+1))
do
#变量s的值由初始值+计数值
s=$(($s+$i))
done
echo "1+2+3+4....+100=$s"
vi 文件名 #编写shell脚本文件,第一行代码以#!/bin/bash开头
根据关键词读取文件内容:cat filename | grep keywork
排除关键词:grep -v keywork
根据关键词":"号截取内容:cut -d ":"
批量删除指定数量的用户
所有shell数值运算都要用(())括起来
批量添加指定数量的用户实例
#!/bin/bash
#批量添加指定数量的用户实例
read -t 30 -p "input user name:" name
read -t 30 -p "input password:" pass
read -t 30 -p "input user number:" num
#检查输入内容是否为非空
if [ -n "$name" -a -n "$pass" -a -n "$num" ]
then
#检查输入的用户数量是否为纯数字
chknum=$( echo "$num" | sed 's/[0-9]//g' )
if [ -z "$chknum" ]
then
for (( i=1;i<="$num";i=i+1 ))
do
#添加用户
/usr/sbin/useradd $name$i &>/dev/null
#添加用户密码,passwd 的--stdin参数是非交互输入,直接传入密码,不需要第二次确认
echo $pass | /usr/bin/passwd --stdin $name$i &>/dev/null
echo "add $i complete"
done
else
echo "the num must be number"
fi
else
echo "input can not be null,please input"
fi
cat /etc/passwd | grep /bin/bash | grep -v /root | cut -d ":" -f 1
批量删除用户实例
#!/bin/bash
#批量删除用户
user=$(cat /etc/passwd | grep "/bin/bash" | grep -v root | cut -d ":" -f 1)
for i in $user
do
#删除用户,-r参数是删除用户家目录
/usr/sbin/userdel -r $i
done
例子:删除用户脚本
批量添加指定数量的用户
cat /etc/passwd 查看当前所有用户
从一加到一百
例子:删除用户脚本
#!/bin/bash
for i in $(cat /etc/passwd |grep /bin/bash | grep -v root | cut -d ":" -fi)
do
userdel -r $i
#-r 表示把家目录也一块删除
done
批量添加指定数量的用户
--stdin 可以接受$pass的值并赋予后面的$name $i
例子:从1加到100
for语法二
批量添加指定数量的用户实例
批量添加用户
for循环语句
批量添加指定数量的用户
for循环批量添加指定数量的用户
for循环批量删除用户
for循环