Shell脚本面试题……

sh/bash/dash/ksh/zsh等Shell脚本
头像
byZh
帖子: 198
注册时间: 2009-01-11 21:38

Shell脚本面试题……

#1

帖子 byZh » 2010-07-16 17:23

一个文本文件内容如下:

代码: 全选

user1  abcd
user2  g23d
user3  vgq2
……    ……
根据文件内容批量创建用户,第一列为用户名,第二列为对应用户的密码
以缺德服人......
头像
adam8157
帖子: 2794
注册时间: 2009-03-05 16:31
联系:

Re: Shell脚本面试题……

#2

帖子 adam8157 » 2010-07-16 18:59

这个...一行一行读, 交给swk分出名字和密码 再交给useradd....就ok了吧....
头像
byZh
帖子: 198
注册时间: 2009-01-11 21:38

Re: Shell脚本面试题……

#3

帖子 byZh » 2010-07-16 20:54

adaml 写了:这个...一行一行读, 交给swk分出名字和密码 再交给useradd....就ok了吧....
写出来在自己的机器上实现一下
以缺德服人......
头像
ChenFengyuan
帖子: 770
注册时间: 2008-03-23 0:39

Re: Shell脚本面试题……

#4

帖子 ChenFengyuan » 2010-07-17 7:29

perl -ne '($user,$pass)=split;system("useradd $user -p $pass")' :em11
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: Shell脚本面试题……

#5

帖子 tusooa » 2010-07-18 9:46

楼上是perl脚本了。 :em06

代码: 全选

#!/bin/bash
while read line; do
    username="${line%  *}"
    password="${line#$username  }"
    useradd -p "$password" "$username"
done < file
总共一个外部命令,而且是必须要用的。

代码: 全选

] ls -ld //
头像
byZh
帖子: 198
注册时间: 2009-01-11 21:38

Re: Shell脚本面试题……

#6

帖子 byZh » 2010-07-18 18:47

tusooa 写了:楼上是perl脚本了。 :em06

代码: 全选

#!/bin/bash
while read line; do
    username="${line%  *}"
    password="${line#$username  }"
    useradd -p "$password" "$username"
done < file
总共一个外部命令,而且是必须要用的。
我运行了一下,不行!

代码: 全选

useradd:无效的用户名“use1 123”
useradd:无效的用户名“use2 234”
以缺德服人......
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: Shell脚本面试题……

#7

帖子 tusooa » 2010-07-18 21:05

1楼给的文件里的username和password的分隔符是两个空格,而你输入只输入了1个!当然要出错!

代码: 全选

] ls -ld //
kokerjie
帖子: 8
注册时间: 2010-07-15 13:41

Re: Shell脚本面试题……

#8

帖子 kokerjie » 2010-07-20 12:03

代码: 全选

#!/bin/bash
while read line; do
username=`echo $line | cut -d ' ' -f1`
password=`echo $line | cut -d ' ' -f2`
useradd -p "$password" "$username"
done < file

这样写,就可以不管多少空格都可以
kokerjie
帖子: 8
注册时间: 2010-07-15 13:41

Re: Shell脚本面试题……

#9

帖子 kokerjie » 2010-07-20 12:05

代码: 全选

#!/bin/bash
while read line; do
username=`echo $line | cut -d ' ' -f1`
password=`echo $line | cut -d ' ' -f2`
useradd -p "$password" "$username"
done < file
这样写,就可以不管多少空格都可以
头像
byZh
帖子: 198
注册时间: 2009-01-11 21:38

Re: Shell脚本面试题……

#10

帖子 byZh » 2010-07-22 21:24

偶知道这个不算什么难题,但是……
还有很多东西需要我去学习,多谢楼上那么多位!
以缺德服人......
yangsp805
帖子: 5
注册时间: 2009-10-22 14:14

Re: Shell脚本面试题……

#11

帖子 yangsp805 » 2010-07-23 16:07

:em11 :em11
yangsp805
帖子: 5
注册时间: 2009-10-22 14:14

Re: Shell脚本面试题……

#12

帖子 yangsp805 » 2010-07-23 16:10

代码: 全选

#!/bin/bash
while read line; do
username=`echo $line | cut -d ' ' -f1`
password=`echo $line | cut -d ' ' -f2`
useradd -p "$password" "$username"
done < file
TheRedIsEast
帖子: 8
注册时间: 2010-06-30 20:51

Re: Shell脚本面试题……

#13

帖子 TheRedIsEast » 2010-07-23 23:49

这里给出的passwd是加密后的吗?
头像
zhouxianglh
帖子: 10
注册时间: 2010-01-11 23:36
来自: 深圳

Re: Shell脚本面试题……

#14

帖子 zhouxianglh » 2010-07-26 15:10

:em20 要好好学啊
花儿,开啊。
头像
ly50247
帖子: 89
注册时间: 2008-07-29 8:01

Re: Shell脚本面试题……

#15

帖子 ly50247 » 2010-07-27 19:45

awk '{system("useradd " $1 " -p " $2) }' file.txt

这样可以吗
回复