5个回答
展开全部
你的脚本写复杂了。看下我的
#!bin/bash
groupadd class1
for i in `seq 30`
do
if [ $i le 9 ];then
useradd -g class1 stu0$i
echo stu0$i | passwd --stdin stu0$i
else
useradd -g class1 stu$i
echo stu$i | passwd --stdin stu$i
fi
done
用useradd新建用户且指定基本组是默认会在家目录下建同名的目录,且属主是用户,属组是基本组
展开全部
1 - i没有初始。在while 前加一行: i=0
还有很多问题。
2 - i = $(($i+1 )) 这三个空格是什么意思?前两个会报错的。
3- 加那么多括号又是什么意思 ?
SHELL IS SHELL, NOT C OR D.
i=$(expr ${i} + 1)
4 - 没有缩进,没有美化。为什么不用emacs?
5 - 明显地你要学习怎么直接输出字符串 01 - 30, 而不是使用if.
6 - 结构相当混乱。
7 - 很多操作都没有判断,这样会有大问题。记得每个操作前都要进行判断。
8 - 加用户一个命令就搞定。chown/chgrp多余,即使用也不要加-R. 你这样搞如果那个用户已经存在了,那么$HOME里的文件属性都被你搞乱了。
总之,你还没有摸着门道,可能只是依着葫芦画个瓢,千万不要在生产系统上运行这些。
还有很多问题。
2 - i = $(($i+1 )) 这三个空格是什么意思?前两个会报错的。
3- 加那么多括号又是什么意思 ?
SHELL IS SHELL, NOT C OR D.
i=$(expr ${i} + 1)
4 - 没有缩进,没有美化。为什么不用emacs?
5 - 明显地你要学习怎么直接输出字符串 01 - 30, 而不是使用if.
6 - 结构相当混乱。
7 - 很多操作都没有判断,这样会有大问题。记得每个操作前都要进行判断。
8 - 加用户一个命令就搞定。chown/chgrp多余,即使用也不要加-R. 你这样搞如果那个用户已经存在了,那么$HOME里的文件属性都被你搞乱了。
总之,你还没有摸着门道,可能只是依着葫芦画个瓢,千万不要在生产系统上运行这些。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
变量 i 没有初始值。
在 while 前面加上给 i 赋值的语句,比如 i=1, 等号两边不能有空格。
在 while 前面加上给 i 赋值的语句,比如 i=1, 等号两边不能有空格。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
说了组已经存在了。这个很明显的。
如果学习linux的shell没有指导的话, 这个很难学好的哦
如果感兴趣的话, 可以交流 linux的shell编程问题
如果学习linux的shell没有指导的话, 这个很难学好的哦
如果感兴趣的话, 可以交流 linux的shell编程问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询