Linux脚本练习之script010-依次向 `/etc/passwd` 文件中的每个用户问好,并且输出对方的 ID。

script010

题目

依次向 /etc/passwd 文件中的每个用户问好,并且输出对方的 ID。如下格式:

hello root is 0
hello bin is 1

分析

本题考查的知识点:

  • 自定义函数
  • 变量和局部变量
  • cut 命令
  • for...in 循环语句
  • echo 命令

思路:

  • /etc/passwd 文件中第一列和第三列分别表示用户名和用户 ID,因为每一行中各列是通过冒号 : 进行分隔的。所以可以通过 cut 命令进行获取。当然还可以使用 awk 命令进行提取。
  • 接着循环遍历所有提取后的用户信息(每行只包括用户名和用户 ID,通过冒号 : 进行分隔),再通过 cut 命令分别提取用户名和用户 ID。
  • 最后打印它们的信息。

脚本

#!/bin/bash

####################################
#
# 功能:依次向 /etc/passwd 文件中的每个用户问好,并且输出对方的 ID。
#
# 使用:直接执行,无须任何参数。
#
####################################

##
# 依次向 /etc/passwd 文件中的每个用户问好,并且输出对方的 ID
##
function say_hello() {
  # 提取 /etc/passwd 文件中的每个用户
  local users
  users=$(cut -d ":" -f 1,3 "/etc/passwd")
  # 循环遍历所有的用户,向它们问好
  for user in $users ; do
      # 提取用户名
      local username
      username=$(echo "$user" | cut -d ":" -f 1)
      # 提取用户id
      local userid
      userid=$(echo "$user" | cut -d ":" -f 2)
      # 打印结果
      echo "hello $username is $userid"
  done
}

##
# 主函数
##
function main() {
  # 在主函数中调用
  say_hello
}

# 调用主函数
main

测试

执行 ./script010.sh 启动脚本:

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值