Shell之练习题

目录

一、判断是管理员还是普通用户

1.1、分析

1.2、编辑脚本文件

1.3、测试

二、判断bash用户

2.1、分析

2.2、编辑脚本文件

​2.3、测试

三、判断指定文件中是否有空白行

3.1、分析

3.2、编辑脚本文件

3.3、测试

四、判断指定用户UID与GID是否一样

4.1、分析

4.2、编辑脚本文件

4.3、测试​

五、两个整数比较大小

5.1、分析

5.2、编写脚本文件

​5.3、测试

六、判断当前主机的CPU生产商

6.1、分析

6.2、编辑脚本文件

6.3、测试

七、指定压缩格式并指定压缩到的目录

7.1、分析

7.2、编辑脚本文件

7.3、测试


一、判断是管理员还是普通用户

需求:给定一个用户,如果其UID为0,就显示此为管理员;否则,就显示其为普通用户;

1.1、分析

给定一个用户,要判断用户是否存在,当用户存在才能判断其uid,再用uid进行比较。

1.2、编辑脚本文件

内容为:

Shell之练习题_第1张图片

注意:

这是代表的意思是从位置4之后开始截取,截取长度为1。

因为管理员用户uid为0,只有一位,所以可以偷懒!

用此方法判断uid是否等于gid用此方法就有bug

例如:

 

 

1.3、测试

Shell之练习题_第2张图片

二、判断bash用户

需求:判断当前系统上是否有用户的默认shell为bash,如果有,就显示有多少个这类用户;否则,就显示没有这类用户;

2.1、分析

判断当前系统上是否有用户的默认shell为bash,可以用grep过滤一下/etc/passwd文件

 判断是否有此类用户,可以用$?,看上一条命令执行是否成功来判断,0代表有,1代表没有。

Shell之练习题_第3张图片

2.2、编辑脚本文件

内容为:

Shell之练习题_第4张图片2.3、测试

Shell之练习题_第5张图片

三、判断指定文件中是否有空白行

需求:给定一个文件,比如/etc/file3,判断这个文件中是否有空白行。如果有,则显示其空白行数;否则,显示没有空白行。

3.1、分析

首先应该判断给定的文件是否存在

其次判断文件是否为空

再判断这个文件中是否有空白行,

3.2、编辑脚本文件

内容为:

Shell之练习题_第6张图片

3.3、测试

Shell之练习题_第7张图片

 /etc/file3Shell之练习题_第8张图片

四、判断指定用户UID与GID是否一样

需求:给定一个用户,判断其UID与GID是否一样,如果一样,就显示此用户为“good guy”;否则,就显示此用户为“bad guy”。

4.1、分析

首先要判断用户是否存在

其次在要获取uid和gid

最后进行比较

4.2、编辑脚本文件

内容为:

Shell之练习题_第9张图片

4.3、测试Shell之练习题_第10张图片

Shell之练习题_第11张图片

五、两个整数比较大小

5.1、分析

(1)首先要输入两个数

(2)其次输入的两个数是否都是整数

(3)最后进行比较

5.2、编写脚本文件

内容为:

Shell之练习题_第12张图片5.3、测试

Shell之练习题_第13张图片

六、判断当前主机的CPU生产商

需求:判断当前主机的CPU生产商,其信息在/proc/cpuinfo文件中vendor_id一行中。 如果其生产商为GenuineIntel,就显示其为Intel公司; 如果其生产商为AuthenticAMD,就显示其为AMD公司; 否则,就显示无法识别;

6.1、分析

(1)判断当前主机的CPU生产商

grep vendor_id  /proc/cpuinfo | cut -d : -f 2

前面还有个空格,要删除才行

grep vendor_id  /proc/cpuinfo | cut -d : -f 2 | tr -d " "

 (2)再判断生产商

6.2、编辑脚本文件

内容为:

Shell之练习题_第14张图片

6.3、测试

七、指定压缩格式并指定压缩到的目录

需求:
写一个脚本,完成如下功能 传递一个参数给脚本,此参数为gzip、bzip2或者xz三者之一;
(1) 如果参数1的值为gzip,则使用tar和gzip归档压缩/etc目录至/backups目录中,并命名为/file1/backups/etc-20160613.tar.gz; tar -czvf /backups/etc-20160613.tar.gz /etc/*
(2) 如果参数1的值为bzip2,则使用tar和bzip2归档压缩/etc目录至/backups目录中,并命名为/file1/backups/etc-20160613.tar.bz2; 
(3) 如果参数1的值为xz,则使用tar和xz归档压缩/etc目录至/backups目录中,并命名为/file1/backups/etc-20160613.tar.xz; 
(4) 其它任意值,则显示错误压缩工具,并执行非正常退出;

7.1、分析

(1)首先要打印出可以选项

(2)输入选项

(3)执行对应语句

7.2、编辑脚本文件

内容为:

Shell之练习题_第15张图片

7.3、测试

Shell之练习题_第16张图片


 

你可能感兴趣的:(Shell,bash,linux,开发语言,shell)