学习Linux已经有一周半了,在马哥的强压下,写了二十几个shell脚本。。。shell正则表达式,awk语句,程序执行流,test语句,sed语句,函数还有一些其他的小命令,如tr,grep,cut,wc等等。越发觉得shell脚本的可爱,没错,是可爱!因为它的快速上手,迷人的正则表达式,变换莫测的程序执行流和awk语句,还有强大的功能,很难想象这么简单的语言和linux如此完美的结合在一起,好像是linux的可爱的“妻子”。
听马哥说,中国的程序员并不是不如印度,国际上很多编程大赛,中国程序员都拿奖,但是软件外包却不如印度。并不是他们编的程序好,而是中国的程序员编程有点“豆腐渣程——只把要求实现的功能都实现了,其他的不管了。。。同样是一个小程序,印度人可能写几百行,上前行,而中国人只写几十行。。并不是人家不能写那么短,而是为了“用户体验”。
废话不说了,切入正题。
###########################
shell脚本中的细节:
首先是变量的运用:有时候我们不得不多次输入一个路径,这个时候我们就可以把路径定义成变量,例如:FILE=/etc/passwd,在使用时用$FILE引用即可。这个技巧很好用,但是当一个脚本有多个路径或多个变量的时候,变量的名字会容易记混,或者打错。所以,在我看来变量的使用原则如下:
1. 尽量避免引用过多的变量,不能贪多,否则整个脚本充满了变量,反而不易读懂。
2. 变量是用来使整个脚本变的方便的,所有应该是出现多次的参数才需要变量来引用。
3. 变量的名字应该易读,易记,易输入,尽量避免过于相似的变量。
4. 有些时候,变量需要在一个脚本中被多次重新赋值,但要注意使用,否则容易出错。
所有的语句都需要精简吗?
以前我一直认为,代码要短越好,这样执行效率会更高,但是现在有一个问题,再好的代码,如果容易“崩溃”的话,再精简有什么用?有些时候,不得不在完成程序功能的基础上考虑程序的可用性。比如当用户输入错误怎么办,用户中突退出怎么办,用户输入的数据怎么是否需要验证。比如,你一个不懂网络知识的人误将IP地址和GATEWAY设为不同的网段,那么这个操作就会造成无法接入互联网。举个例子
写一个脚本:
1、提示用户选择所要设置的网卡;
2、提示用户使用dhcp或者static作为选定网卡的BOOTPROTO
a、如果用户选择dhcp,则将其配置文件中的BOOTPROTO的值设为dhcp,而后重启此网卡;
b、如果用户选择static,则将其配置文件中的BOOTPROTO的值设为static,并提示用户输入IP地址,子网掩码和网关;其中网关可以为空,但IP地址或子网掩码不能为空;设置完成后重启此网卡;
3、无论上述动态或静态设定,设定完成后将网卡IP地址设定后信息再次显示给用户;
我们来分析:这个程序的功能其实很简单,只要求能够识别用户的输入信息是dhcp还是static,然后进行相应的设置,但是我来考虑:
考虑:1、如果用户没有做出任何修改之前就不想设置了,如何退出?
2、如果用户已经设定了一些信息,如IP地址等却又不想设置了,而使用了Ctrl+c,如何处置?
3、如果用户输入的是错误的IP信息怎么办?
4、如果用户输入的是错误的NETMASK怎么办?
5、如果用户输入的是不匹配的IP和GATEWAY怎么办?
6、如果用户输入的信息已经存在怎么办?
7、用户输入的网卡是否存在?
8、万一网卡重启发生错误怎么办?
整个代码如下
分享到:
相关推荐
资源名称:Linux Shell脚本学习基础视频资源目录:【】11a00d99b60c4e2eba3440b8aa3a6bdd【】linux_shell脚本编程_01认识shell,如何编写shell脚本和执行【】linux_shell脚本编程_02vivim简单的常用操作【】linux_...
Linux_shell脚本全面学习 Linux_shell脚本全面学习
Linux-shell脚本全面学习.pdf
给linux的shell脚本加密(ZT).rar
Linux Shell脚本教程:30分钟玩转Shell脚本编程 _
shell学习基本命令,可以帮助初学者快速掌握较全面的shell脚本知识
linux运维学习笔记:Shell脚本调试
linux运维学习笔记:Shell脚本书写规范
mysql8,linux版全自动安装shell脚本,一键安装;适合自动化安装环境,学习shell编程。可读性高
linux通讯录的shell脚本,很多linux大作业都需要
交互方式修改密码 1. ssh 远程到主机; 2. 切换到root账号; [一般都是切换到root进行密码修改,如果普通用户修改自己的密码,要输入原密码,... 3. passwd username ... ...echo password | passwd testuser --stdin > /dev
Linux命令与shell 脚本大全,内容丰富,包含了shell脚本的技术命令 以及大量的实践内容
文件包含大作业shell脚本(快速备份系统)源码,实验课做的Linux实验shell脚本:Samba实验,DDNS(DHCP服务器 和DNS服务器的配置)的shell脚本,运行脚本每个实验只需要两三分钟即可完成。 其中sy1为实验一脚本,sy2...
linux经典shell脚本
linux基础学习,各种命令的讲解,以及 shell 脚本编写实例
LinuxShell脚本编程实例.pdf
Linux_Shell脚本攻略.第3版,高清电子版,作者Clif Flynt,Sarath Lakshman,Shantanu Tushar. 这本书的电子版也可以到http://readfree.me这个网站上下载。
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善...
有关几个shell脚本的编写,如:编写一个shell脚本程序,它带一个命令行参数,这个参数是一个文件。如果这个文件是一个普通文件,则打印文件所有者的名字和最后的修改日期...加入了自己的注释理解
Linux常用命令 2 1.1 su用户切换 2 1.2 useradd 添加用户 2 1.3 passwd修改口令 2 1.4 ls查看文件/目录 3 1.5 cd改变工作目录 4 1.6 pwd显示工作目录 4 ...4.1 shell脚本的创建与执行 24 4.2 shell脚本基本语法 24