zoukankan      html  css  js  c++  java
  • shell脚本

    为什么新建好的shell脚本不能直接执行: ~]xxxx.sh

    因为在bash中,命令的使用是 command options ,直接用~]xxx.sh,这个xxx.sh会被认为成一个命令,然后bash去PATH中寻找解释器,一般新建脚本的路径不在PATH中,所以无法直接执行,可以使用./指定当前路径来执行sh脚本,或者也可以直接使用绝对路径来执行sh脚本

    介绍:

    1. Shell是一个用C语言编写的程序,通过Shell用户可以访问操作系统内核服务,类似于DOS下的command和后来的cmd.exe
    2. Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量、参数、函数、流程控制等等。它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行
    3. 编译型解释性
      编译型语言
      需要预先将我们写好的源代码转换成目标代码,这个过程被称作“编译”。运行程序时,直接读取目标代码。由于编译后的目标代码非常接近计算机底层,因此执行效率很高,这是编译型语言的优点
      解释型语言
      也叫做脚本语言。执行这类程序时,解释器需要读取我们编写的源代码,并将其转换成目标代码,再由计算机运行。因为每次执行程序都多了编译的过程,因此效率有所下降

    Shell脚本解释器
    cat /etc/shells

    /bin/bash
    bash由于易用和免费,在日常工作中被广泛使用。同时,Bash也是大多数Linux系统默认的Shell脚本解释器。

    流程

    变量

    参数的传递

    特殊字符

    字符串

    数组

    运算符

    原生bash不支持简单的数学运算,可以通过其他命令来实现,例如 awk 和 expr,expr 最常用,expr 是一款表达式计算工具,使用它能完成表达式的求值操作。

    流程控制

    函数

    环境变量:

    实现自增

    示例:

    测试命令:

    查找centos用户

    shell中的测试类型


    模式匹配

    脚本的状态返回值
    默认的echo $? 输出的就是命令执行状态码

    文件测试

    组合测试条件
    ![](https://img2018.cnblogs.com/blog/1361758/2(01909/1361758-20190916083410617-1942003221.png)

    向脚本传参

    超过9之后 $(10) 一次往后推,使用shift可以完成轮替,shift 1 代表提出第一个位置参数,


    比较两数大小

    也可以直接声明

  • 相关阅读:
    列“XAxisBacklas”不属于表 Table。
    无经意中收看了《微软英雄》片段
    书编程(Asp.net)
    Runtime Error
    书编程(其他)
    书英语书
    【转】CodeBlocks中文版使用手册
    Java关键字this、super使用总结(转)
    分析对比主流Bootloader的性能
    C语言指针的初始化和赋值
  • 原文地址:https://www.cnblogs.com/cizao/p/11484431.html
Copyright © 2011-2022 走看看