zoukankan      html  css  js  c++  java
  • linux基础学习-19.2-Shell脚本的创建

    shell脚本的建立 {#21-shell脚本的建立}

    使用vim 编辑器编辑脚本,可以事先做个别名

    [root@oldboyedu ~]# echo "alias vi= 'vim'" >>/etc/profile

    [root@oldboyedu ~]# . /etc/profile

    2.1.1 脚本开头(第一行) {#211-脚本开头(第一行)}

    规范的shell 脚本第一行会指出哪个程序(解释器),来执行脚本的内容,在linux bash编程中一般为:

    #!/bin/bash

    #!/bin/sh <<===255字符以内

    其中开头的“#!”又称为幻数,在执行shell 脚本中,内核会根据“#!”后的解释器来确定用哪个程序解释脚本中的内容,注意:这一行必须在每个脚本顶端的第一行,如果不是第一行则为脚本注释行。 {#其中开头的!又称为幻数,在执行shell-脚本中,内核会根据!后的解释器来确定用哪个程序解释脚本中的内容,注意:这一行必须在每个脚本顶端的第一行,如果不是第一行则为脚本注释行。}

    bash版本

    [root@oldboyedu ~]# bash --version

    GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)

    Copyright (C) 2009 Free Software Foundation, Inc.

    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>;

    This is free software; you are free to change and redistribute it.

    There is NO WARRANTY, to the extent permitted by law.

    [root@oldboyedu ~]#

    2.1.2 shell 脚本的执行 {#212-shell-脚本的执行}

    shell脚本执行的四种方式:

    1)bash script-name 或sh script-name

    这种方法是当脚本本身没有可执行权限时常使用的方法

    2)path/script-name 或./script-name (全路径或当前路径执行脚本)

    这种方法首选需要给脚本文件可执行权限

    3)source script-name 或. script-name #注意“.” 点号,且点号后有空格。

    source或.在执行这个脚本的同时,可以将脚本中的函数和变量加载到当前shell。不会产生子shell。又有点像nginx的include功能。

    4)sh <script -name 或cat script-name |sh 或cat script -name|bash

    这种用法用的不多,我们在开机启动项优化使用过。

    2.1.3 shell脚本开发的规范和习惯 {#213-shell脚本开发的规范和习惯}

    1)开头指定脚本解释器

    2)开头加长版本版权等信息,可配置~/.vimrc 文件自动添加

    3)脚本不要用中文注释,尽量用英文注释

    4)脚本以.sh为扩展名。

    5)放在统一的目录

    6)代码书写优秀习惯

    a: 成对的内容一次性写出来,防止遗漏,如;[ ] , ‘’ ,“” 等

    b:[ ] 两端要有空格,先输入[ ],退格。输入2个空格,再退格写

    c:流程控制语句一次书写完,再添加内容。heen

    if 条件

    then

    内容

    fi

    d通过缩进让代码易读

    f 脚本中引号都是英文状态下的引号,其他字符也是英文状态。

    练习题:

    1、叙述脚本执行的四种方式

    2、写脚本的规范和习惯

  • 相关阅读:
    Tomcat 配置 项目 到tomcat目录外面 和 域名绑定访问(api接口、前端网站、后台管理网站)
    弹窗插件zDialog使用教程
    shiro+spring相关配置
    jQuery分页插件(jquery.page.js)的使用
    ueditor1.4.3配置过程(包含单独上传文件以及图片的使用),ueditor1.4.3上传配置(转 http://www.bkjia.com/webzh/1001016.html)
    ueditor1_4_3_3编辑器修改文章
    jquery获取当前select下拉选的属性值
    js点击标签时获取当前标签属性值
    mysql给root开启远程访问权限,修改root密码
    redis持久化配置
  • 原文地址:https://www.cnblogs.com/Klanti/p/9143764.html
Copyright © 2011-2022 走看看