LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 980|回复: 7

编写一个关于查询用户名和UID的scripts(已解决)

[复制链接]
发表于 2006-6-29 10:12:53 | 显示全部楼层 |阅读模式
请教各位DX,说明如下:

查询/etc/passwd文档中的用户名,和UID,并按如下格式输出

第 1 个用户为 xxx ,用户ID为 yyy

第 2 个用户为..... ,用户ID为 ,,,,,

。。。

依此类推

************************************************
尝试用for do  写了半天还是不能实现
发表于 2006-6-29 10:44:26 | 显示全部楼层
awk -F: '{ print "第"NR"个用户为: " $1 ",用户ID为: " $3 }' /etc/passwd
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-29 13:51:42 | 显示全部楼层
seamonkey兄
请教一下,以上是 “print” 还是 “printf” 呀?

我的思路是这样的
将A=`cat /etc/passwd |cut -d ':' -f1`
   B=`cat /etc/passwd |cut -d ':' -f3`

循环

  declare -i i=$i+1

输出:

  echo "The $i name is $A,UID is $B"

就是不知内面的循环如何实现,另,for只能将1个变量赋1个或多个值,但要同时将1个以上变量赋值如何在一个for循环中实现呢?
回复 支持 反对

使用道具 举报

发表于 2006-6-29 14:08:59 | 显示全部楼层
awk的print语句。

纯shell:

i=1; while read line; do echo "第$i个用户是: $(echo "$line" | cut -d ':' -f1), UID是: $(echo "$line" | cut -d ':' -f3)"; i=$((i+1)); done </etc/passwd
回复 支持 反对

使用道具 举报

发表于 2006-6-29 14:13:55 | 显示全部楼层
也不能算"纯",毕竟用了cut。
回复 支持 反对

使用道具 举报

发表于 2006-6-29 14:17:01 | 显示全部楼层
awk快多了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-29 14:38:00 | 显示全部楼层
谢谢seamonkey兄的不涩赐教,终于实现了!!谢谢!
回复 支持 反对

使用道具 举报

发表于 2006-6-29 14:39:34 | 显示全部楼层
太客气了。。一下子多了四贴,呵呵。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表