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中的脚本和可执行程序

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

  • 相关阅读:
    日志
    设置和开启定时器
    缓存管理
    计算机程序员能做多久,这个行业有年龄限制吗?
    程序员都是怎么工作的?
    做程序员怎么样?
    javascript中this关键字
    1003. 二哥养细菌—java
    1002. 二哥种花生——java
    this与static
  • 原文地址:https://www.cnblogs.com/chaoguo1234/p/5724321.html
Copyright © 2011-2022 走看看