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 usersusers=$(cut -d ":" -f 1,3 "/etc/passwd")# 循环遍历所有的用户,向它们问好for user in $users ; do# 提取用户名local usernameusername=$(echo "$user" | cut -d ":" -f 1)# 提取用户idlocal useriduserid=$(echo "$user" | cut -d ":" -f 2)# 打印结果echo "hello $username is $userid"done
}##
# 主函数
##
function main() {# 在主函数中调用say_hello
}# 调用主函数
main

测试

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

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

  1. linux更换登录用户名和密码怎么办,用passwd及chage命令让用户在下次登录Linux时更换密码...

    当你在 Linux 系统中使用默认密码创建用户时,你必须强制用户在下一次登录 Linux 时更换密码,做到这一点其实不懂,目前有两种办法,就是使用 passwd 命令或者 chage 命令,以下就具体 ...

  2. Linux 脚本执行遇到错误时中止,shell 文件内容替换 sed用法

    Linux 脚本执行遇到错误时中止, shell 脚本中 : set -x 是开启,   set +x是关闭  , set -e  表示有报错即退出, set  +e  表示关闭这种设置.  set ...

  3. linux删除最后一个换行符,如果它是文件中的最后一个字符,如何删除换行符?...

    perl -pe 'chomp if eof' filename >filename2 或者,编辑文件到位: perl -pi -e 'chomp if eof' filename [编者注: ...

  4. 【Linux】(用户不在sudoers文件中……) 添加用户到sudoers

    [Linux](用户不在sudoers文件中--) 处理这个问题应该先理解其原理再操作 首先要明白root的密码一般用户是不应改知道的,但一般用户有时可能要用到root的一些权限. 这里就有了一个 / ...

  5. Linux系统开机后/etc/rc.d/rc.local文件中的命令没有执行(已解决)

    今天想将linux系统上的svn服务添加到开机自启动,结果重启机器后发现svn服务根本没有起来,检查了添加到/etc/rc.d/rc.local文件的命令没有问题,如下: 看了文件的注释部分才知道,原 ...

  6. 数据包过滤 系统 linux,Ubuntu16.04安装libpcap开发库对pcap文件中的数据包进行过滤...

    Ubuntu16.04下安装了Wireshark的话,应该是已经安装了libpcap0.8的包,如下图: 使用sudo apt-get install libpcap-dev安装开发包,安装后系统显示 ...

  7. linux内核全局变量重定位,关于可重定位文件中全局变量的一个重定位疑惑,借各位牛刀一用^...

    /// 不需要牛刀,不需要阅读源码,如果只是为解决109的含义.楼主执行的查询命令readelf -S  test2.o [ 8] .symtab           SYMTAB           ...

  8. linux grep命令Ff和wf从两个文件中提取相同内容的行

    首先--grep -Ff text1: chr1    1304143 chr1    1304787 chr1    1305007 chr1    1305066 chr1    1305096 ...

  9. Linux 脚本编写基础

    1. Linux 脚本编写基础 1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在 ...

最新文章

  1. DirectX10 学习笔记2:在多文档框架中初始化DirectX 10
  2. 《JavaScript启示录》——导读
  3. 一直认为 count(1) 比 count(*) 效果高,被同事鄙视了。
  4. Java 默认/缺省 内存大小,如果没有 -Xms -Xmx
  5. 汇编语言调用c语言ads,ADS1.2 在汇编代码中调用C函数
  6. 大象喝水(信息学奥赛一本通-T1032)
  7. mysql两台服务器怎么做数据同步_让两台服务器的MySQL数据同步(互为主从关系)...
  8. 一个简单的项目Java后端框架(springboot+maven包括shiro,验证码的生成与使用,异常处理,跨域处理)
  9. 省市县联动列表html代码,若依添加省市县联动三级菜单
  10. 芯片可靠性测试要求及标准解析
  11. 如何利用数字化工具提高工作效率?
  12. MYSQL的随机函数
  13. 文件存取服务器是用的什么,什么是文件存储?
  14. Word文档太大怎样压缩变小?有没有简单的步骤讲解?
  15. C. Equalize
  16. office2016专业增强版cmd安装
  17. DT内核圆柱模板行业站点主动tags三项主动推送插件
  18. SpringCloud微服务-----skywalking链路追踪
  19. Linux系统升级sudo版本来解决本地用户获得 root 权限
  20. QCC304x/QCC514x Pydbg在线调试

热门文章

  1. 和华为差8倍!苹果割韭菜没完没了
  2. 【mcuclub】STC89C52单片机最小系统讲解
  3. 【阈值分割】基于遗传算法实现图像的自适应多阈值快速分割附matlab代码
  4. 大众软件之变:宾利品牌制造负责人接任CARIAD CEO
  5. Antlr4介绍和Helloworld
  6. 【数学篇】06 # 可视化中你必须要掌握的向量乘法知识
  7. python画平面直角坐标系_一棵树-可视化之图形化基础之向量
  8. js数据结构与算法 图的BFS和DFS
  9. github源码下载慢问题
  10. 申卡这一步很重要,不要因为它错失你的信用卡!