其实,vii 就是写的一个脚本,跟 vi 没半毛钱关系,只不过借用一下这个名字而已。那这个脚本长什么样呢?look:

  

  下面来详细的解析上面的代码,来看第1行:

  #!/bin/bash

  这是Shell脚本的格式,没啥好讲的。

  再来看第3-6行:

 

 if [ $# -eq 0 ]

  then

  vi

  fi

  这是是判断执行 vii 的时候带不带参数,假如不带参数,那么就直接启动 vi

  再来看第8-16行:

  if [ $# -eq 1 ]

  then

  suffix=`echo $1 | sed "s/\(.*\)\(\..\)$/\2/"`

  if [ $suffix != ".c" ] || [ -e $1 ]

  then

  vi $1

  exit

  fi

  fi

  这是在带且仅带一个参数的情况下,比如 vii hello.c 或者 vii hello.txt 的时候,判断文件的后缀suffix,如果后缀是不是 .c 或者文件本身已经存在,那么就直接用 vi 打开。否则,要创建的文件一定是一个不存在并且后缀是 .c 的文件,此时就可以进入下面的代码。

  再来看第19-28行:

  sample="/bin/sample.c"

  if [ ! -e $sample ]

  then

  echo "$sample is NOT exist"

  exit

  else

  cp $sample $1

  vi $1

  fi

  sample.c 就是一个写好了头文件、main函数的程序框架模板,并放置到 /bin 下。直接将这个模板文件 cp 到当前目录,并用 vi 打开这个模板。

shell脚本视频资料

http://www.makeru.com.cn/live/3485_1489.html?s=45051

网盘资料由于网盘链接有时效性比较容易失效可以加个VX把网盘链接发一些,记得备注自己所需的资料的名字

Shell脚本学习笔记之(自动填充函数模板)的更多相关文章

  1. shell脚本学习笔记(符号)

    shell脚本的学习: 1.Shell的作用是解释运行用户的命令,用户输入一条命令,Shell就解释运行一条,这样的方式称为交互式(Interactive),Shell还有 一种运行命令的方式称为批处 ...

  2. shell脚本学习笔记 (流编辑器sed)

    sed意为流编辑器(Stream Editor),在Shell脚本和Makefile中作为过滤器使用很普遍,也就是把前一个程序的输出引入sed的输入,经过一系列编辑命令转换为另一种格式输出. sed不 ...

  3. shell脚本学习笔记

    1.判断符号:中括号[ ] [ ]进行数据的判断,例如我想知道HOME这个变量是否为空,[ -z "$HOME" ],或者两个字符串是否相等,[ "$HOME" ...

  4. linux shell脚本学习笔记一

    一.文件比较运算符-e filename 如果 filename存在,则为真 [ -e /var/log/syslog ]-d filename 如果 filename为目录,则为真 [ -d /tm ...

  5. shell脚本学习笔记 (正則表達式)

    正則表達式一般有三个部分组成,他们各自是:字符类,数量限定符,位置限定符. 规定一些特殊语法表示字符类.数 量限定符和位置关系,然后用这些特殊语法和普通字符一起表示一个模式,这就是正則表達式(Regu ...

  6. Shell脚本学习指南笔记

    Shell脚本学习指南 作者:Danbo 2015-8-3 脚本编程语言与编译型语言的差异 许多中型.大型的程序都是用编译型语言写的,例如:C.C+.Java等.这类程序只要从源代码(Source C ...

  7. 笔记——shell脚本学习指南

    <shell脚本学习指南>机械工业出版 ISBN 987-7-111-25504-8 第2章 2.4 初级陷阱 1.当今的系统,对#!这一行的长度限制从63到1024个字符都有,尽量不要超 ...

  8. 学习笔记之Shell脚本学习指南 & sed与awk & 正则表达式

    正则表达式_百度百科 http://baike.baidu.com/link?url=ybgDrN2WQQKN64_gu-diCqdeDqL8LQ-jiQ-ftzzPaNUa9CmgBRDNnyx50 ...

  9. thinkphp学习笔记9—自动加载

    原文:thinkphp学习笔记9-自动加载 1.命名空间自动加载 在3.2版本中不需要手动加载类库文件,可以很方便的完成自动加载. 系统可以根据类的命名空间自动定位到类库文件,例如定义了一个类Org\ ...

随机推荐

  1. 排查dubbo接口重复注销问题,我发现了一个巧妙的设计

    背景 我在公司内负责自研的dubbo注册中心相关工作,群里经常接到业务方反馈dubbo接口注销报错.经排查,确定是同一个接口调用了两次注销接口导致,由于我们的注册中心注销接口不能重复调用,调用第二次会 ...

  2. input 只可以输入时分秒

    在html5的time中,只有时.分,没有秒. 例如<input type="time" name="user_date" /> 属性加上 step ...

  3. Java基础之代理模式

    代理模式是常见的设计模式之一,意图在为指定对象提供一种代理以控制对这个对象的访问.Java中的代理分为动态代理和静态代理,动态代理在Java中的应用比较广泛,比如Spring的AOP实现.远程RPC调 ...

  4. JDK 1.7 正式发布,Oracle 官宣免费提供!“新版任你发,我用JDK 8”或成历史?

    Oracle公司JDK 17正式发布,JDK 17属于长期支持(LTS)版本,也就是获得8年的技术支持,自2021年9月至2029年9月截止. JDK 17版本更新了很多比较实用的新特性,关于此版本的 ...

  5. Win8 iis 环境搭建

    http://www.cnblogs.com/Joans/archive/2012/07/16/2593828.html 系统:win8 环境:vs2012 一:安装IIS 比较win7的安装来说,多 ...

  6. HCNP Routing&Switching之IS-IS路由聚合和认证

    前文我们了解了IS-IS路由渗透和开销相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15302382.html:今天我们来聊一聊IS-IS路由聚合和认 ...

  7. ESP8266- ESP01之AT固件下载及其他问题

    注意: 本文基于淘宝上买的安信可原装ESP-01,文章中出现的问题在另一片ESP-01S上均未出现.由于在刷固件前没有进行完整测试,因此无法判断是固件导致的还是版本不同造成的. 问题: 1.发热严重. ...

  8. css 限制字数

    text-overflow: ellipsis; overflow: hidden; 不过需设置宽高

  9. 解决navicat 导出excel数字为科学计数法问题

    1.原因分析      用程序导出的csv文件,当字段中有比较长的数字字段存在时,在用excel软件查看csv文件时就会变成科学技术法的表现形式.     其实这个问题跟用什么语言导出csv文件没有关 ...

  10. 『Python』面向对象(二)

    继承 继承的语法 class Animal(object): def __init__(self,name): self.__name = name class Dog(Animal): kind = ...