编写一个shell脚本实现如下功能: (1)提示用户输入年份,月份?

1 案例1:Shell脚本的编写及测试

2 案例2:重定向输出的应用

本例要求编写一个脚本 /root/out.sh,功能特性如下:

  • 标准输出(1):命令行执行正常的显示结果
  • 标准错误(2):命令行执行出错或异常时的显示结果

将屏幕显示信息保存到文件:

使用1>&2或>&2操作,可以将命令行的标准输出编程标准错误。

实现此案例需要按照如下步骤进行。

步骤:编写out.sh输出测试脚本

 
 
 

3 案例3:使用特殊变量

本例要求编写一个脚本 /root/myuseradd,功能特性如下:

1)此脚本可接收2个位置参数,能够按照下列格式执行:

 

2)此脚本执行后,能显示“一共提供了 $# 个参数”,然后在下一行显示“用户名是 $1,密码是 $2 ”,紧跟下一行开始输出对应文件的前几行内容。

使用位置变量可以取得在执行脚本时提供的命令行参数:

  • 表示为 $n,n为序号

使用预定义变量$#可以统计执行脚本时提供的位置变量个数。

实现此案例需要按照如下步骤进行。

 
 
 
  1. 一共提供了 2 个参数
  2. 更改用户 bob 的密码 。
  3. passwd:所有的身份验证令牌已经成功更新。
 
  1. 一共提供了 2 个参数
  2. passwd:所有的身份验证令牌已经成功更新。

4 案例4:编写一个判断脚本

Shell脚本中执行条件测试的方式:

常用的test测试选项:

  • 字符串比较 ==、!=
 

实现此案例需要按照如下步骤进行。

步骤一:编写foo.sh判断脚本

 
 

步骤二:测试foo.sh判断脚本

1)测试提供正确参数的情况

 

2)测试提供非预期参数的情况

 

3)测试不提供参数的情况

 

5 案例5:编写一个批量添加用户脚本

  1. 此脚本要求提供用户名列表文件作为参数
  2. 如果没有提供参数,此脚本应该给出提示 Usage: /root/batchusers,退出并返回相应值
  3. 如果提供一个不存在的文件,此脚本应该给出提示 Input file not found,退出并返回相应值
 

脚本的退出状态:取决于退出前最后一条命令的 $? 值,或者“exit 整数值”指定。

列表式for循环结构:

 

使用命令替换来获取命令结果:$(命令行)

实现此案例需要按照如下步骤进行。

步骤一:编写batchusers批量添加用户脚本

 
 

步骤二:测试batchusers批量添加用户脚本

1)下载用户列表测试文件:

 

2)实现批量添加用户:

 

3)测试其他异常处理:

 
<article>
<hr>
<hr>
#胜负已定,为显示结果重新赋值变量
<h3>
echo "请根据提示选择您的出拳手势:"
</h3>
<hr>
<h2>
echo "乱点木有用!!!"
</h2>
<hr>
#本脚本编写完成后,放置在/etc/init.d/目录下,就可以被linux系统自动识别到该脚本 echo "你输入的语法格式错误"
<hr>
<h2>
<strong>69. 切割 Nginx 日志文件(防止单个文件过大,后期处理很困难)</strong>
</h2>#需要先执行一次本脚本, #或crontab -e手动写入计划任务,并注释下边命令
<hr>
<hr>
<h2>
<strong>71.检测MySQL数据库连接数量</strong>
</h2>#本脚本每2秒检测一次MySQL并发连接数,可以将本脚本设置为开机自启,或指定时间执行 #以满足对MySQL数据库的监控需求,查看MySQL连接是否正常
<hr>
user=数据库用户名 dbname=需要备份的数据库名称 #测试备份目录是否存在,不存在则自动创建该目录
<hr>
<h2>
<strong>73.从键盘读取一个论坛积分,判断论坛用户等级</strong>
</h2>
<hr>
#在源码包目录下,将相应的配置文件拷贝到Linux系统文件系统中 #默认安装完成后,不会自动拷贝或安装配置文件到Linux系统,需手动cp复制配置文件, #并用uuidgen生成一个随机密钥的配置文件
<hr>
<hr>
<h2>
<strong>76.自动安装KVM虚拟机</strong>
</h2>echo "主机CPU不支持虚拟化,退出!"
<hr>
#此脚本并不能完全自动安装虚拟机,安装过程中需要手动设置各项参数 #此脚本存在的意义是:衔接后边的脚本
<hr>
<h2>
<strong>78.快速克隆KVM虚拟系统</strong>
</h2>#本脚本针对RHEL7系列 #该脚本使用qemu-img命令快速创建快照虚拟机 #脚本使用sed修改模版虚拟机的配置文件,将虚拟机名称、UUID、磁盘文件名、MAC地址
<hr>
<h2>
<strong>79.使用脚本开关虚拟机</strong>
</h2>#脚本通过virsh命令实现对虚拟机的管理,若没有该命令,需要安装libvirt-client软件包 # $1是脚本的第1个参数,输入需要虚拟机执行的操作指令 # $2是脚本的第2个参数,输入虚拟机的名称 list 显示虚拟机列表 enable 设置虚拟机为开机自启 disable 关闭虚拟机开机自启
<hr>
<h2>
<strong>80.调整虚拟机内存参数的shell脚本</strong>
</h2>#脚本通过调用virsh命令实现对虚拟机的管理,若没有该命令,需要安装libvirt-client软件包 提示:虚拟机要处于开机状态 1.调整虚拟机最大内存 2.调整实际分配给虚拟机的内存数值
<hr>
<h2>
<strong>81.查看所有虚拟机磁盘使用量及cpu使用量信息</strong>
</h2>
<hr>
<h2>
<strong>82.破解虚拟机密码,无密码登录虚拟机系统</strong>
</h2>echo "破解,需先关闭虚拟机" #将passwd中密码占位符x删除,该账户即可实现无密码登录系统
<hr>
<h2>
<strong>83.查看KVM虚拟机中的网卡信息(不用进入或启动虚拟机)</strong>
</h2>#该脚本使用guestmount工具,可以将虚拟机的磁盘系统挂载到真实机文件系统中 #虚拟机启动与否都不影响此脚本的使用 #将虚拟机磁盘文件挂载到文件系统后,就可以直接读取磁盘文件中的网卡配置文件中的数据 #可获取写入配置文件的静态ip #若有设备已挂载到该挂载点,则先umount卸载 #只读的方式,将虚拟机的磁盘文件挂载到特定的目录下,这里是/media/virtimage目录
<hr>
<h2>
<strong>84.不登录虚拟机,修改虚拟机网卡ip地址</strong>
</h2>#脚本在不登录虚拟机的情况下,修改虚拟机的ip地址信息 #在某些环境下,虚拟机没有ip或ip地址与真实主机不再一个网段 #真实主机在没有virt-manager图形的情况下,远程连接虚拟机很麻烦 #该脚本可以解决类似问题 echo "修改虚拟机网卡数据,需要关闭虚拟机" #判断原本网卡配置文件中是否有ip地址,有则修改该ip,没有则添加一个新的ip
#若网卡配置文件中有客户配置的ip地址,则脚本提示修改ip完成
</article>

我要回帖

更多关于 输入月份自动生成日期 的文章

 

随机推荐