`
shinfocom
  • 浏览: 1220675 次
文章分类
社区版块
存档分类
最新评论

Linux学习心得:细细品味shell脚本中的细节与用户体验 ^_^

 
阅读更多

学习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、万一网卡重启发生错误怎么办?

整个代码如下



分享到:
评论

相关推荐

    LinuxShell脚本学习基础视频

    资源名称:Linux Shell脚本学习基础视频资源目录:【】11a00d99b60c4e2eba3440b8aa3a6bdd【】linux_shell脚本编程_01认识shell,如何编写shell脚本和执行【】linux_shell脚本编程_02vivim简单的常用操作【】linux_...

    Linux-shell脚本全面学习.pdf

    Linux Shell 脚本编程基础知识点总结 Linux 脚本编写基础 1.1 语法基本介绍 * `#!` 符号用来告诉系统它后面的参数是用来执行该文件的程序 * 在 Linux 中,使用 `/bin/sh` 来执行程序 * 编辑好脚本后,需要使其可...

    给linux的shell脚本加密(ZT).rar_Linux shell_shell 脚本_shell加密_shell脚本

    在Linux系统中,Shell脚本是一种非常强大的工具,它允许用户编写自动化任务,执行系统管理操作,甚至构建复杂的程序。然而,随着脚本的复杂性和重要性增加,保护脚本内容的安全变得至关重要,特别是当脚本包含敏感...

    Linux命令行与shell脚本编程大全_第三版_学习笔记_learn_linux_shell.zip

    Linux命令行与shell脚本编程大全_第三版_学习笔记_learn_linux_shell

    Linux Shell脚本教程:30分钟玩转Shell脚本编程 _

    Linux Shell脚本教程:30分钟玩转Shell脚本编程 _

    linux运维学习笔记:Shell脚本书写规范.pdf

    Shell脚本是Linux系统中一种极为重要的工具,它能够帮助用户执行批量的命令操作,自动化日常运维任务。编写规范、易于理解的Shell脚本不仅有助于提高工作效率,而且方便日后的维护和团队协作。本笔记将详细阐述Shell...

    linux脚本shell学习笔记

    shell学习基本命令,可以帮助初学者快速掌握较全面的shell脚本知识

    Linux 命令与Shell 脚本编程pdf书籍

    《Linux命令行与Shell脚本编程大全》是一本专为Linux初学者编写的经典教材,旨在帮助读者深入理解和掌握Linux操作系统中的基本命令行操作以及Shell脚本编程技术。这本书全面覆盖了从基础到进阶的各种主题,对于想要...

    Shell脚本学习指南_中文版,shell脚本基础,LINUX

    在IT领域,Shell脚本是Linux和Unix操作系统中不可或缺的一部分,它是一种强大的自动化工具,能够帮助用户执行一系列命令,简化日常任务。这个“Shell脚本学习指南_中文版”涵盖了从基础到进阶的Shell脚本知识,是...

    在linux 系统shell 批量添加用户和密码

    Shell脚本是Linux系统中的重要组成部分,它允许用户通过编写一系列命令来自动化复杂的任务。这些脚本可以执行一系列预定义的命令,从而节省时间和提高效率。在本例中,我们使用的是Bash shell,它是Linux中最常用的...

    linux下批量执行oracle脚本的shell脚本

    Shell脚本是Linux系统中的一种强大的自动化工具,它允许用户通过编程的方式来调用系统命令,执行一系列操作。 `create_database.sh` 这个文件名暗示了这是一个创建数据库的shell脚本。在Oracle中,创建数据库通常...

    linux命令行与shell脚本编程.pdf

    linux命令行与shell脚本编程.pdf

    C语言中文网shell脚本教程

    Shell命令在Linux系统中是操作系统与用户交互的接口,它们是可执行的程序,可以执行特定的操作。了解命令的选项和参数至关重要,这些参数用于定制命令的行为。例如,`1.7Shell命令的选项和参数在本质上到底是什么?...

    shell_ip_orangewgz_linux_shell_shell编程_shell脚本_

    本文将深入探讨标题"shell_ip_orangewgz_linux_shell_shell编程_shell脚本_"所提及的利用Shell编写判断IP地址合法性的脚本这一主题。我们将围绕Linux Shell、Shell脚本、shell编程以及如何在orangewgz Linux发行版上...

    《Linux shell脚本全面学习》pdf版电子书

    ### Linux Shell脚本全面学习知识点概述 #### 一、Linux脚本编写基础 **1.1 语法基本介绍** **1.1.1 开头** - **解释**: 每个Shell脚本都需要以 `#!/bin/sh` 开始,这行被称为shebang,用于指示系统如何执行此...

    linux下shell脚本实现数据的导出

    在Linux环境下,shell脚本是自动化任务的强大工具,尤其对于数据导出这样的操作,通过编写shell脚本可以方便地实现定期备份或者按需导出。本文将深入讲解如何使用shell脚本来实现数据的导出,并结合Java代码进行调用...

    Linux学习资料及shell脚本实例

    在IT领域,Linux操作系统及其相关的shell脚本编程是不可或缺的一部分,尤其对于系统管理员、开发者以及对计算机技术有深厚兴趣的学习者来说。这份“Linux学习资料及shell脚本实例”涵盖了Linux的基础知识和实用技巧...

    LINUX SHELL 脚本攻略

    Linux Shell脚本攻略是一本针对Linux操作系统下Shell脚本编写的指导书籍。Shell脚本是利用Shell编程语言来控制和自动化命令序列的脚本,常用于系统管理、服务器管理、自动化任务处理等领域。本书的第三版包含了全面...

Global site tag (gtag.js) - Google Analytics