zoukankan      html  css  js  c++  java
  • shell中命令的执行流程

    在shell中,一个命令有3中写法:

    1 可以直接写(Normal Command)

    2 可以放在双引号中("Command")

    3 可以放在单引号中('Comand')

    这3中写法,命令的执行流程也是不一样的,如下图所示:

    由pipe characte(|)分割command

    shell脚本中,每一行文本称为一个pipeline,每一个pipeline由0个或者多个pipe character(|)连接,shell处理的第一步就是将pipeline分割成多个command分别进行处理

    ralias替换

    将alias替换成真正的命令,比如将ls替换成ls --color=auto

    brace替换

    将a{b,c}e替换成abe,ace

    ~替换

    将~替换成HOME目录

    变量替换

    将$开头的变量替换为其真正的值

    执行替换命令

    即执行$(command)或者`command`

    执行算数表达式

    即执行$(( 1 + 3 ))

    glob扩展

    比如将a/*扩展成a/b a/c

    command查找

    按照优先级,查找:

    1 function

    2 built-in

    3 $PATH中的脚本和可执行程序

    从上图中可以看到,放在单引号中的命令执行流程最为简单,直接查找命令,然后执行,而放在双引号中的命令会进行变量替换,执行命令替换,执行算数表达式,然后才查找命令执行。

  • 相关阅读:
    Hibernate ORM初始(入门基础)
    spring mvc 文件下载
    Servlet3.0提供上传
    基础 jsp + Servlet 进行文件下载
    spring mvc 拦截器
    springmvc 文件上传
    elsaticsearch6.2.3(续)集群搭建
    elseticsearch的基本命令
    Centos7 Linux下搭建Elasticsearch环境
    SpringBoot实例一
  • 原文地址:https://www.cnblogs.com/chaoguo1234/p/5724321.html
Copyright © 2011-2022 走看看