Shell脚本基础练习

脚本编程能力是作为运维工程师不可或缺的一项基本技能,各种系统的运维,如果完全靠命令行一条一条命令来执行,工作效率可想而知,而脚本却可以将完成一定功能的各个命令依据一定的流程控制,逻辑判断去完成某种功能,提升工作效率。学习shell脚本,光学习理论是远远不够的,所以在学习中要多多练习,下面就看一些关于shell脚本基础的练习

(1) 编写脚本/root/bin/sumid.sh,计算/etc/passwd文件中的第10个用户和第20用户的ID之和

Shell脚本基础练习

$1$2表示的是位置变量,作用是在脚本代码中通过命令传递给脚本的参数。在这里定义里两个变量UID_10UID_20 ,用来存储某个用户的uid,在给变量赋值的过程中,可以引用命令执行的结果,使用管道符过滤出想要的结果,赋值给变量。

Shell脚本基础练习

在执行脚本的时候,输入两个位置变量参数,在执行时,脚本代码就会调用这两个参数,实现想要完成的操作。使用位置参数,不仅可以计算第十个和第二十个用户的uid之和,还可以计算任意两个用户的uid之和,只要在执行脚本时输入想要查询第几个用户,就可以完成。

(2)编写脚本/root/bin/sumspace.sh,传递两个文件路径作为参数给脚本,计算这两个文件中所有空白行之和

Shell脚本基础练习 

Shell脚本基础练习

传递两个文件路径参数$1$2 在执行脚本代码中设置两个变量表示两个文件的空白行数,在给变量赋值时调用命令执行的结果,在赋值时支持正则表达式。

(3)编写脚本/root/bin/sumfile.sh,统计/etc, /var, /usr目录中共有多少个一级子目录和文件

Shell脚本基础练习

Shell脚本基础练习

三个位置参数表示目录名,使用ls  -A 过滤掉当前目录“.”和上级目录“..,这样显示的就只有一级子目录和文件了。

(4)编写脚本/bin/per.sh,判断当前用户对指定的参数文件,是否不可读并且不可写

 Shell脚本基础练习Shell脚本基础练习Shell脚本基础练习

-r filename 是用来判断文件是否可读,可读时为真,-w filename是用来判断文件是否可写,可写时为真。 “!”后加命令表示“非”,所以脚本执行的结果是当“[  ]”中为真时,输出不可读不可写,当为假时,输出显示该文件可读或者可写。

(5)编写脚本/root/bin/excute.sh ,判断参数文件是否为sh后缀的普通文件,如果是,添加所有人可执行权限,否则提示用户非脚本文件

Shell脚本基础练习 

Shell脚本基础练习 

定义变量var1 因为输入的位置变量$1是一个文件的路径,所以使用basename命令用来取出输入的路径的基名。

原创文章,作者:Melissa,如若转载,请注明出处:http://www.178linux.com/83670

(2)
MelissaMelissa
上一篇 2017-08-05
下一篇 2017-08-05

相关推荐

  • nginx+tomcat+memcached构建session共享集群

    一、安装配置tomcat 配置前说明: 系统为centos7 m1.xsllqs.com地址为192.168.1.107 c1.xsllqs.com地址为192.168.1.114 c2.xsllqs.com地址为192.168.1.113 安装tomcat需要配合JDK使用,JDK有oracle JDK和open JDK两种 oracle JDK8的下载地…

    Linux干货 2016-06-26
  • Python基础语法习题

    1、~12为什么是-13?解1:12 二进制:0000 1100补码: 0000 1100按位取反 :1111 0011求这个原码,即负数求补码的逆过程:先减1,再取反 (符号位不变)-1 1111 0010取反 1111 1101 还原成十进制-13 2、10^9等于?10^-9等于?解:(1)10^910的二进制:0000 10109的二进制: 0000…

    Linux干货 2018-03-24
  • 系统启动流程与GRUB管理

    系统启动流程: POST–>读取BootSequence(BIOS),决定引导次序–>读取引导设备的Bootloader(MBR grubstage1–>stage1.5/boot/filkeststem)–>boot–>/boot/grub.conf–>磁盘分区读取 kernel(ramd…

    Linux干货 2016-09-13
  • Linux系统上命令的使用格式与十二个常用命令详解

    Linux系统上命令的使用格式 命令的语法通用格式: ~]# COMMAND OPTIONS ARGUMENTS 例如: ls -ld /var COMMAND(命令): ls ls命令用来显示目标列表 OPTIONS(选项): -ld -ld 是 -l -d 的简写 -l 以详细格式列表 -d 仅列目录 ARGUMENTS(参数): /var 命令对这个/…

    2018-02-26
  • Linux网站架构系列之Mysql—-部署篇

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1321079   MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL所使用的SQL语言是用于…

    Linux干货 2015-04-01
  • N26-第一周博客作业

    一:计算机的组成及其功能  1.运算器(CPU) 对数据进行各种运算;  2.控制器(CPU) 用来控制整个计算机操作系统;  3.存储器 内存(RAM)存储程序和各种数据信息;  4.输入装置 (Input)下达指令,提供数据,常见的输入装置有鼠标,键盘等;  5.输出设备 (Output)输出数据加工后的…

    Linux干货 2016-12-31