linux通过上次登录、主目录和组监视用户帐户

linux通过上次登录、主目录和组监视用户帐户,linux,bash,ubuntu,virtual-machine,virtualbox,Linux,Bash,Ubuntu,Virtual Machine,Virtualbox,我创建了一个名为monitornsuaccounts.sh的脚本,该脚本应将其输出文件附加到useraccountstatus.log。useraccountstatus.log位于/var/local/nsu/logs/目录中。此脚本的输出应说明每个用户名以及有关每个用户名的以下信息:用户名、上次登录、用户主目录和关联组。最好每个信息都有列。这是我到目前为止所拥有的,但我很难收集每个用户名并包含每个用户的信息。awk肯定可以列出所有用户名,每个命令单独工作(比如lastlog username

我创建了一个名为monitornsuaccounts.sh的脚本,该脚本应将其输出文件附加到useraccountstatus.log。useraccountstatus.log位于/var/local/nsu/logs/目录中。此脚本的输出应说明每个用户名以及有关每个用户名的以下信息:用户名、上次登录、用户主目录和关联组。最好每个信息都有列。这是我到目前为止所拥有的,但我很难收集每个用户名并包含每个用户的信息。awk肯定可以列出所有用户名,每个命令单独工作(比如lastlog username),但在尝试从每个用户帐户获取它时就不行了

#!/bin/bash
awk -F':' '{ print $1}' /etc/passwd > usernames.txt
names=cat usernames.txt|while read usernames; do echo “$usernames”; done
lastlg=cat usernames.txt|while read usernames; do echo “lastlog $usernames”; done
directory=cat usernames.txt|while read usernames; do echo “eval echo ~$usernames”; done
group=cat usernames.txt|while read usernames; do echo “groups $usernames”; done
final=echo “$names | $lastlg | $directory | $group” > /var/local/nsu/logs/useraccountstatus.log

首先,去掉那些聪明的引语,那会害死你的。那么,你能编辑这个问题来显示你的预期结果吗?此外,要运行命令并在变量中捕获输出,请使用
var=$(cmd…
),您将缺少
$
参数,因此实际上不会将值保存到变量中。最后,您不需要在循环期间将文件放入
,在
完成后,您可以重定向文件,如
完成
@Daniel:请向我们展示示例输入文件和预期输出。