shell脚本编程基础练习

这周,我们学习了shell脚本基础,那么什么是shell脚本呢

shell script是利用shell的功能所写的一个程序,这个程序是使用纯文本文件,将一些shell的语法与指令写在里面,然后用正则表达式,管道命令以及重定向向等功能,以达到我们所想要的处理目的。Shell脚本可以帮助我们系统、自动化的去管理和处理一些东西

下面是摘抄出的几个练习:

首先,写一个能够创建新脚本的Shell script,如createshXX.sh, 当执行createsh /root/bin/test1.sh 则会自动创建并打开/root/bin/test1.sh,且其中包含以下内容:

#!/bin/bash

# ——————————————

# Filename:

# Revision:

# Date:

# Author:

# Email:

# Website:

# Description:

# ——————————————

shell脚本编程基础练习

注:$1 位置变量,指代后面输入的第一个参数,使用echo和”>” 生成文件并导入模板内容,chmod +x给予文件可执行权限

下面的所有脚本都使用这个脚本创建,基本注释就可以省略了。shell脚本编程基础练习

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

 _space=`cat $@ | egrep “^[[:space:]]*$” |wc -l` ; echo $_space

注:这道练习没有难点,不过上面的解答很有创意,所以收藏了。通过cat同时查看多个文件,然后grep直接匹配两个文件的所有空白行,这样就省去了运算过程 ,66的 。 

2.编写脚本/root/bin/argsnumsh,接受一个文件路径作为参数;如果参数个数小于1,则提示用户“至少应该给一个参数”,并立即退出;如果参数个数不小于1,则显示第一个参数所指向的文件中的空白行数

[   “$@”  ]&&(cat $1 |grep “^[[:space:]]*$” |wc -l) ||(echo 至少应该给一个文件参数!;exit)

注:$@: 传递给脚本的所有参数,每个参数为独立字符串 ,()将多个命令组合起来作为一组执行。

3.编写脚本/root/bin/checkdisk.sh,检查磁盘分区空间和inode使用率,如果超过80%,就发广播警告空间将满

A=`df | grep sd|sort -nr -k5|head -1|tr -s ‘ ‘ %|cut -d% -f5`

B=`df -i| grep sd|sort -nr -k5|head -1|tr -s ‘ ‘ %|cut -d% -f5`

[ “$A” -gt “80” ] && wall “空间即将满”||echo “空间使用率不超过80%”

[ “$B” -gt “80” ] && wall “inode即将满”||echo “inode使用率不超过80%”

unset A B

注:写这个脚本的时候,我一直在纠结,因为不知道应该怎么把几个数字依次与80%对比,原来只需要使用sort和head取最大的使用率和80%对比就行了,尴尬!shell脚本编程基础练习

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

shell脚本编程基础练习

注:这个脚本一定要注意加入判断文件是否存在,不然如果文件不存在,也会显示为文件不可读且不可写。

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

shell脚本编程基础练习

注:[ =~ ]测试‘=~’前面的字符串能否被后面的字符串匹配,要注意以’.sh’结尾的表示方法,不知道你会不会错,反正我错了好多次。

shell脚本会在我们将来工作中经常使用到,一定要好好练习。






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

(0)
mayunmayun
上一篇 2017-08-05 15:47
下一篇 2017-08-05 16:11

相关推荐

  • 权限管理

           学习文件和目录的权限管理,不仅在学习上对我们的帮助很大,而且在工作上帮助也很大,因为你对文件或目录设置了权限,其他用户只能根据你设置的权限对文件或目录进行浏览,修改,删除或执行,也正是如此,权限的管理很重要。下面我就对Linux的权限管理进行简单的介绍。 Linux下的文件类型 -:普…

    Linux干货 2016-08-08
  • 初学Linux之文本处理工具和正则表达

    1、各种文本工具来查看、分析、统计文本 
    2、grep 
    3、正则表达式和扩展正则表达式 
    4、egrep

    2017-12-09
  • 4th work

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限。 [root@localhost etc]# cp -r /etc/skel/ /home/tuser1 [root@localhost etc]# chmod go-rwx /home/tuser1/ 2、编辑/etc/gr…

    Linux干货 2017-10-09
  • linux程序包管理

    Linux程序包管理        API:Application Program Interface        ABI:Application Binary Interface           Unix-like, &n…

    Linux干货 2016-12-30
  • Centos 6 –grub legacy及grub修复

    一、CentOS 6 grub legacy:     1.启动流程:             POST –> Boot Sequence(BIOS) –> Boo…

    Linux干货 2016-09-21