Linux脚本练习之script052-写一个脚本,显示当前系统上所有默认 shell 为 bash 的用户的用户名、UID 以及此类所有用户的 UID 之和。

script052

题目

写一个脚本,显示当前系统上所有默认 shell 为 bash 的用户的用户名、UID 以及此类所有用户的 UID 之和。

分析

本题考查的知识点:

  • cat 命令
  • egrep 命令
  • for...in 循环语句
  • echo 命令
  • cut 命令
  • $(()) 运算

思路:

  • 找到 /etc/passwd 文件中所有以 "bash" 结尾的行,可以通过 egrep "bash$" 来检索。

在这里插入图片描述

  • 找到这些行之后,通过 for 语句进行循环。
  • 通过 cut -d ":" -f 1 提取第一列的内容(即用户名);通过 cut -d ":" -f 3 提取第三列的内容(即用户 ID)。
  • 注意使用 $(()) 把用户ID 计入总和。
  • 最后打印结果。

脚本

#!/bin/bash

####################################
#
# 功能:写一个脚本,显示当前系统上所有默认 shell 为 bash 的用户的用户名、UID 以及此类所有用户的 UID 之和。
#
# 使用:直接调用脚本,不需要任何参数
#
# 作者:lcl100
#
# 日期:2022-06-04
#
####################################


# 查找所有默认 shell 为 bash 的用户
bash_users=$(cat /etc/passwd | egrep "bash$")
# 循环遍历所有用户,输出它们的用户名和用户 ID,及计算所有用户的用户 ID 之和
uid_sum=0
for user in $bash_users ; do
    # 获取用户名
    user_name=$(echo "$user" | cut -d ":" -f 1)
    # 获取用户 ID
    user_id=$(echo "$user" | cut -d ":" -f 3)
    # 把用户 ID 计入总和
    uid_sum=$(($uid_sum+$user_id))
    # 打印用户名和用户 ID
    echo "$user_name:$user_id"
done
echo "所有用户的 UID 之和为:$uid_sum"

测试

执行 ./script052.sh 调用脚本。

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值