bash脚本编程
    命令的堆砌
    脚本程序:解释器解析执行
    shell:交互式接口,编程环境
        shell:能够提供一些内部命令,并且能通过PATH环境变量找到外部命令,把命令提交给内核启动为进程;
       
        编程环境:
            流程控制语句
            顺序执行
            循环执行
            选择执行
            条件测试:真、假
           
    过程式的编程语言的元素:变量、流程、函数、数组
   
        变量:局部变量、本地变量、环境变量、位置参数变量、特殊变量
        变量:
            数值型:整型、浮点型、布尔型
            字符型:字符串
       
        bash变量是弱类型;默认字符型;
       
        变量引用:${VAR_NAME}
        引号:
            强引用:''
                echo '$PATH'
                    输出$PATH
                   
            弱引用:""
                echo "$PATH"
                    输出$PATH的具体的值
                   
            命令引用:`COMMAND`, $(COMMAND)
                aa=`echo $PATH` 或者aa=$(echo $PATH)
                    把命令echo $PATH的执行结果赋值给aa
           
        声明某变量为整型变量:
            let VAR_NAME=VALUE
            declare -i VAR_NAME=VALUE
           
        声明某变量为环境变量:
            export VAR_NAME=VALUE
            declare -x VAR_NAME=VALUE
   
    脚本的编写格式:
    第一行:写明解释器;#!/bin/bash
        脚本绝对第一行从第一个字符位置开始给出shebang:
        #!bin/bash
            声明脚本要用bin目录下的bash来执行,而不是csh或者什么别的。
           
    注释行:所有以#开头的行均为注释行,会被解释器忽略
   
    执行脚本:
        赋予执行权限,指明执行路径;
            chmod +x first.sh
            或者直接指定权限:bash first.sh
           
        直接传递脚本给bash解释器
            bash 脚本路径
            export Path=...:/tmp
                修改PATH变量,把first.s所在的目录/tmp写入path中
            或者不修改path,给出绝对脚本绝对目录:/tmp/first.sh
            或者给出相对路径:./first.sh
       
        bash的选项:
            -n: 测试脚本中是否有语法错误
            -x: 调试执行
            例:bash -x test.sh
                开启一个子bash,之后执行命令,打印命令的执行过程
   
    算术运算:
        $[EXPRESSION]
        let VAR_NAME=EXPRESSION
        $((EXPRESSION))

bash命令退出和退出状态码
    命令在bash中执行结束退出时,其执行成功与否可通过退出状态码来记录
   
    脚本的退出状态码取决于执行的最后一条命令,自定义退出状态码
        exit #:#代表数字
            例:exit 5
                遇到此条命令会退出程序之后运行echo $?,则返回5
           
        成功:0
        失败:1-255
       
        注意:提前退出脚本,也可使用exit命令实现
       
        例:
            echo $?: 查看上一次命令执行成功与否,0表示成功执行
           
    练习1:写一个脚本
        (1) 创建目录/tmp/testdir;
        (2) 复制文件/etc/fstab, /etc/rc.d/rc.sysinit至此目录中;

#!/bin/bash
            directory=/tmp/testdir

mkdir $directory
            cp /etc/fstab /etc/rc.d/rc.sysinit $directory

bash脚本编写基础的更多相关文章

  1. linux 脚本编写基础(一)

    1. Linux 脚本编写基础 1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在 ...

  2. Bash脚本编写初体验

    上周例会的时候,冷不丁的接到了维护原有的安装脚本和编写升级.卸载脚本的任务,PM和几个同事一本正经的说,一天甚至30分钟就可以精通shell脚本编写,哪怕没有语言基础也可以. 当然,作为有着C++.P ...

  3. shell 脚本编写基础

    在进行Linux测试时编写脚本是必不可少的,Shell脚本的名称可以随便定义,也不要什么后缀名,例如可以写abc,smartzip这类名称,运行时只要键入 ./smartzip就能运行脚本了.. 每行 ...

  4. Linux 脚本编写基础

    txt去重    http://man.linuxde.net/sort Linux 脚本编写基础 http://www.cnblogs.com/linn/archive/2007/03/05/664 ...

  5. 一个很不错的bash脚本编写教程

    转自 http://blog.chinaunix.net/uid-20328094-id-95121.html 一个很不错的bash脚本编写教程,至少没接触过BASH的也能看懂! 建立一个脚本 Lin ...

  6. Bash脚本编程基础

    为实现某个任务,将许多命令组合后,写入一个可执行的文本文件的方法,称为Shell脚本编程. 按照应用的Shell环境不同,可以将Shell脚本分为多种类型.其中最常见的是应用于Bash和Tcsh的脚本 ...

  7. linux学习19 shell脚本基础-bash脚本编程基础及配置文件

    一.shell脚本编程 1.编程语言的分类,根据运行方式 a.编译运行:源代码 --> 编译器(编译) --> 程序文件 C语言: b.解释运行:源代码 --> 运行时启动解释器,由 ...

  8. shell脚本编写笔记

    包含转载内容,转载自http://wenku.baidu.com/link?url=jtCHxEYzgGve6P64U3JRQRgU6nhpGvqFLLpWu9I2Htq6hi9TGLudRFkk7r ...

  9. IDA-IDC脚本编写语法

    1.IDA脚本编写基础 IDC是IDA内置的脚本语言,其语法与C非常相似,它是一种解释性语言. 执行方法 在IDA中按SHIFT+F2键会弹出一个对话框,把语句直接写在对话框中,点击run就可被运行. ...

随机推荐

  1. 为什么数据库ID不能作为URL中的标识符

    最近公司在进行网站的SEO优化,将所有主要页面的URL统一更改为新的格式,其中重要的一项改变是将所有URL的标识符统一为ID,例如过去我们的一个用户的公共页面URL是这样的 https://www.e ...

  2. Redis特性之持久化机制

    持久化机制 Redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到硬盘来保证持久化. Redis支持两种持久化方式: 1.snapshotting(快照)也是默认方式 ...

  3. CallContext的LogicalCallContext在多线程环境下面公用变量

    压根名听说过这个类的看这里:如何实现对上下文(Context)数据的统一管理 原来以为CallContext就可以直接在多线程环境下面共享使用的,今天突然想到:Asp.Net环境下面,设置来设置去的, ...

  4. They say Rome wasn't built in a day, and yet what a difference a day makes.

    They say Rome wasn't built in a day, and yet what a difference a day makes.有人说罗马不是一天建成的,但一天却能改变很多事.

  5. Ubuntu获取root 权限,开机自动登入root

    新机器获取root权限,只需要给root 增加密码: sudo passwd root 修改开机自动登入: #sudo gedit /etc/lightdm/lightdm.conf 修改参数: au ...

  6. Linux 安装Memcache扩展支持

    查看相关软件包 yum search memcached 安装memcache yum -y install memcachedMemcache关联php yum -y install php-pec ...

  7. Html style="visibility:hidden"与style="display:none"的区别

    style="visibility:hidden": 使对象在网页上隐藏,但该对象在网页上所占的空间没有改变. style="display:none": 使对 ...

  8. 微软Bot Framework文档中,关于Sign-in Card的一处代码错误及更正

    Bot Framework文档出错处网址:https://docs.botframework.com/en-us/csharp/builder/sdkreference/attachments.htm ...

  9. python爬虫之路——初识基本页面构造原理

    通过chrome浏览器的使用简单介绍网页构成 360浏览器使用右键审查元素,Chrome浏览器使用右键检查,都可查看网页代码. 网页代码有两部分:HTML文件和CSS样式.其中有<script& ...

  10. Unity中实现全局管理类的几种方式

    (搬运自我在SegmentFault的博客) 如何在Unity中实现全局管理类?由于Unity脚本的运行机制和面向组件编程(COP)的思想,实现起来和普通的方式略有差别. 第一种方式是使用静态类.适合 ...