热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

shell脚本编程练习

练习1设定变量FILE的值为etcpasswd,并依次向其中的每个用户问好,说出对方的id,最后统计一共有多少个用户1#!binbash2fileetcpasswd3lines

练习1

设定变量FILE的值为/etc/passwd,并依次向其中的每个用户问好,说出对方的id,最后统计一共有多少个用户

1 #!/bin/bash
2 file="/etc/passwd"
3 lines=wc -l $file | cut -d " " -f1
4 for i in `seq 1 $lines`;do
5 userid=head -$i $file | tail -1 |cut -d: -f3
6 username=head -$i $file | tail -1 | cut -d: -f1
7 echo "hello $username, your UID is $userid"
8 done
9 echo "there are $lines users"

练习2

切换工作目录至/var,依次向/var目录中的每个文件或子目录问好

#!/bin/bash
cd /var
let num=0
for i in `ls`;do
echo "hello $i"
num=$[$num+1]
done
echo "the number of files is $num"

练习3

设定变量的值为/etc/passwd,使用循环读取文件中的第2,4,6,10,13,15行,并显示其内容,将这些内容保存至/tmp/mypasswd中

#!/bin/bash
file="/etc/passwd"
exec 3 > /tmp/mypasswd
for f in 2 4 6 10 13 15;do
line=`sed -n "${f}p" $file`
echo "$line"
echo "$line">&3
done
exec 3>&-

练习4

传递两个整数给脚本,让脚本分别计算并显示这两个整数的和,差,积,商

#!/bin/bash
echo "输入的第一个数为$1"
echo "输入的第二个数为$2"
echo "二数之和为$[$1+$2]"
echo "二数之差为$[$1-$2]"
echo "二数之积为$[$1*$2]"
echo "二数之商为$[$1/$2]"

练习5

创建目录/tmp/scripts,切换工作目录至此目录中,复制/etc/pam.d目录到当前目录,并改名为test,将当前目录的test及其里面的文件和子目录的属主改为redhat,将test及其子目录中的文件的其它用户权限改为没有任何权限

#!/bin/bash
mkdir -v /tmp/scripts
cd /tmp/scripts
cp /etc/pam.d ./test
chown -R redhat ./test
chmod -R o=--- ./test

练习6

显示当前系统日期和时间,然后创建目录/tmp/lstest,切换工作目录至/tmp/lstest,创建目录a1d, b56e, 6test,创建空文件xy, x2y, 732,列出当前目录下以a, x或者6开头的文件或目录,列出当前目录下以字母开头,后跟一个任意数字,而后跟任意长度字符的文件或目录

#!/bin/bash
date
mkdir -v /tmp/lstest
cd /tmp/lstest
mkdir a1d b56e 6test
touch xy x2y 732
ls [ax6]*
ls [[:alpha:]][[:dight:]]*

 



推荐阅读
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 大坑|左上角_pycharm连接服务器同步写代码(图文详细过程)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了pycharm连接服务器同步写代码(图文详细过程)相关的知识,希望对你有一定的参考价值。pycharm连接服务 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 从U ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
  • Hadoop2.6.0 + 云centos +伪分布式只谈部署
    3.0.3玩不好,现将2.6.0tar.gz上传到usr,chmod-Rhadoop:hadophadoop-2.6.0,rm掉3.0.32.在etcp ... [详细]
  • 其实之前也有下载过完整的android源码,但是从来没有对这个做过一些总结,在加上最近需要经常去看,索性就在从新下载,编译一下,其实这些东西官网上面都有。http:sou ... [详细]
  • linux 禁止指定ip访问
    linux中如何禁止指定的ip访问呢?比如被别人暴力破解,被别人使用不同的密码尝试登录:所以我想直接禁用这些ip的访问.怎么办呢?解决方案:修改配置文件etchosts.deny把 ... [详细]
  • homemyUserscript.sh>>homemyUserlog.txt2>&1在script.sh ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了markdown[软件代理设置]相关的知识,希望对你有一定的参考价值。 ... [详细]
author-avatar
潇洒看不惯_185
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有