以下是两个批量添加和删除用户的脚本,希望大家给看下哪出错了
#!/bin/bash
i=1
read -p "请输入你想新建的用户数量:" A
read -p "请输入用户名前缀:" B
read -p "请输入用户失效时间:" C
read -p "请输入用户初始密码:" D
while [ $i -le $A ]
DO
if [ $i -lt 10 ] ; then
USE=$B0$i ##此处0为数字
else
USE=$B$i
if
useradd -e $C $USE
echo "$D" | passwd --stdin $USE &> /dev/null
let i++
done
上面是添加用户,下面为删除用户两个脚本相互对应
#!/bin/bash
i=1
read -p "请输入你批量想删除的用户名前缀:" A
read -p "请输入你想删除用户的数量:" B
while [ $i -eq $B ]
do
if [ $i -lt 10 ] ; then
USE=${A}0$i
else
USE=$A$i
fi
userdel -d $USE | grep -v "root" /etc/passwd | cut -d "root"
let i++
done
以上脚本有错误之处,希望大虾们来帮帮小菜搞定哈~~!
bawoshiji 于 2011-08-21 18:37:32发表:
总目标:请输入你想删除的用户名前缀:
请输入你想删除包含上述用户名前缀的数量范围:a-b
这样做下来灵活多了,思路也清晰了,但,咋个编法呀,没接触过
bawoshiji 于 2011-08-21 18:12:15发表:
小错误有点多,我知道的就不要说了 我写脚本有点马虎,呵呵不好意思(o):tx
如果删除的脚本做好的话,相当于可以根据前缀更灵活的进行删除用户,但是一直找不到更好的思路,也不知道思路是卡到哪了~~(5ty(
bawoshiji 于 2011-08-21 18:12:06发表:
小错误有点多,我知道的就不要说了 我写脚本有点马虎,呵呵不好意思(o):tx
如果删除的脚本做好的话,相当于可以根据前缀更灵活的进行删除用户,但是一直找不到更好的思路,也不知道思路是卡到哪了~~(5ty(
bawoshiji 于 2011-08-21 18:12:01发表:
小错误有点多,我知道的就不要说了 我写脚本有点马虎,呵呵不好意思(o):tx
如果删除的脚本做好的话,相当于可以根据前缀更灵活的进行删除用户,但是一直找不到更好的思路,也不知道思路是卡到哪了~~(5ty(
bawoshiji 于 2011-08-21 18:09:58发表:
问题是用户能创建
但删除的时候好像不行唉!
第一个脚本if条件后面第一个USE写错了
是USE=${B}0$i
我的初忠是在删除用户的时候根据用户名前缀进行删除,并可以自己指定删除的数量和范围
比方说建立了100个用户 我想删除第50-80个用户怎么做?
那个DO是我打错了 应该是do 我脚本里是小写的
第一个脚本修改后成功,但删除的脚本好像不行,请问有解决的办法么,运行一后没什么反应,也没删除也没有任何操作出现
age 于 2011-08-21 14:06:03发表:
[i=s] 本帖最后由 age 于 2011-8-21 14:08 编辑 [/i]
这种写法很不好
究竟你的变量名称是$B还是$B0呢?
应该用{}把变量名称扩起来以免歧义
如
其次if..else..fi这样的对应关系, 最后一个是fi而不是if
另外, 没有错误信息, 这样很难排错的
在脚本前面加上set -x
相思爱文 于 2011-08-21 13:37:52发表:
[i=s] 本帖最后由 相思爱文 于 2011-8-21 13:41 编辑 [/i]
linux是区分大小写的,
do和DO是不同的。
别的楼下补充。
bawoshiji 于 2011-08-20 23:52:06发表:
跪求:0wmjh(1
bawoshiji 于 2011-08-20 23:31:09发表:
求高手解决:0w223dc
wang4289273 于 2011-08-20 23:21:03发表:
好深奥。刚开始学script。还没到这地步、楼主。佩服佩服