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. ue5新手零基础学习教程 Unreal Engine 5 Beginner Tutorial - UE5 Starter Course
  2. 重大改变!Python 或将取代 VBA 成为 Excel 官方脚本语言
  3. OnnxRuntime 性能调优
  4. Python机器学习笔记:XgBoost算法(亲测)
  5. 中小企业邮件系统选型攻略
  6. 计算机信息管理相关课题论文,计算机信息管理课题论文[].doc
  7. Deformable CNNs论文笔记
  8. linux ansible_17本技术书籍,4个出色的Firefox扩展,Linux技巧,Buildah,Ansible和其他热门阅读
  9. Pytorch 一种调整学习率的思路
  10. 您如何性能测试JavaScript代码?
  11. thrift (转)
  12. 移植oprofile到海思
  13. 利用自定义注解,AOP + redis限制ip访问接口次数
  14. Linux命令:查看服务器IP地址
  15. 【delphi】TMS_Component_Pack_v9.2.4.0中的TadvMemo 支持中文完美修改
  16. Vuex的基本使用及总结(超详细)
  17. WebStrom代码中出现浅黄色背景
  18. (C#).NET调用新浪微博转发
  19. 张玉成科学院计算机所,石晶林-中国科学院大学-UCAS
  20. 编译git时,make报错:zlib.h: No such file or directory

热门文章

  1. setns对当前进程无效问题的排查(getpid获取值不变)
  2. crontab 分时日月周的例子
  3. 电路1——非正弦周期交流电路
  4. 词向量模型Word2vec原理
  5. linux移除包的命令,linux的yum卸载包命令说明
  6. Android获取软键盘的高度、键盘的打开与关闭、监听键盘处于打开还是关闭状态
  7. 使用ColorUI构建小程序项目
  8. mysql root 被锁_MySQL的root权限密码忘记的解决办法
  9. android自定义弧形,Android 自定义弧形旋转菜单栏——卫星菜单
  10. 核芯物联国产蓝牙AOA高精度融合定位生态合能伙伴解决方案征集入驻润城新产业(深圳)有限公司2000平智慧城市展厅