需要 Linux 脚本帮助



我正在尝试创建一个脚本,该脚本将使用/etc/passwd 文件来创建如下所示的列表:

全名:废话 用户帐户:bblah 用户 ID:5000 上次登录时间:周日 2 月 21 日 18:13全名:迈克·迈克 用户帐户:mmike 用户 ID:5001 上次登录时间:周日 2 月 21 日 18:13

用我的脚本,我让它显示全名:废话 用户帐户:bblah 用户 ID:1000因为我在我的 passwd 文件中对 1000 个帐户进行了 grep。 一旦我执行 5000 系列,我就会获得所有全名,然后是所有用户帐户,然后是列出的所有用户 ID。 我该如何解决这个问题? 如何添加"上次登录"位?

有没有办法在不使用awk的情况下做到这一点?

到目前为止的脚本是:

#!/bin/bash
passfile=/etc/passwd
for i in  $(grep 5000 ${passfile} | cut -d : -f 5)
do

        account=$(grep 5000 /etc/passwd | cut -d : -f 3)
        username=$(grep 5000 /etc/passwd | cut -d : -f 1)
        echo Full Name:${i} Username: ${username} User ID: ${account} Last login: ${lastlogin)
done

上次登录是通过最后一个命令完成的:

last username

使用这个:

#!/bin/bash
echo -en "BEGIN{n}{n    system(var)n}n" > h.awk
while read in; 
 do 
  uname=`echo $in | sed -r 's/:/ /g' | awk '{print $1}'`; 
  p1=`echo $in | sed -r 's/:/ /g' | awk '{print "name: "$5, "username: "$1, "id: "$3}'`; 
  p2=`echo | awk  -f ./h.awk var="last $uname| head -n 1"|awk '{print $5 $6}'`; 
  echo $p1 last login: $p2; 
done < /etc/passwd

如果您需要提示上次登录的更多详细信息,请使用以下命令:

echo -en "BEGIN{n}{n    system(var)n}n" > h.awk
while read in; 
 do 
  uname=`echo $in | sed -r 's/:/ /g' | awk '{print $1}'`; 
  p1=`echo $in | sed -r 's/:/ /g' | awk '{print "name: "$5, "username: "$1, "id: "$3}'`; 
  p2=`echo | awk  -f ./h.awk var="last $uname| head -n 1"|awk '{print $4" "$5 $6" "$7}'`; 
  echo $p1 last login: $p2; 
done < /etc/passwd

最新更新