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中的脚本和可执行程序
从上图中可以看到,放在单引号中的命令执行流程最为简单,直接查找命令,然后执行,而放在双引号中的命令会进行变量替换,执行命令替换,执行算数表达式,然后才查找命令执行。
shell中命令的执行流程的更多相关文章
- UBOOT添加命令的执行流程
BootLoader(引导装载程序)是嵌入式系统软件开发的第一个环节,它把操作系统和硬件平台衔接在一起,对于嵌入式系统的后续软件开发十分重要,在整个开发中也占有相当大的比例.U-BOOT是当前比较流行 ...
- Springmvc中的HandlerAdaptor执行流程
今天讲解一下在Springmvc中的HandlerAdaptor执行流程,明白这个过程,你就能画出下面的图: 接下来我们就来看看具体的实现过程吧. 1.0在DispatcherServlet中找到ge ...
- Django 中 admin 的执行流程
Django 中 admin 的执行流程 1 循环加载执行所有已经注册的 app 中的 admin.py 文件 def autodiscover(): autodiscover_modules('ad ...
- shell中命令之间数据的传递
1.管道 "|" ls | cat -n > out.txt 2. 子shell 2.1 子shell 说明 在shell脚本中可以用()操作符可以定义一个子shell #/ ...
- 脚本乐园 Shell中命令行选项和参数的处理
在Linux的Shell中怎样处理tail -n 10 access.log这样的命令行选项呢?这是被别人问起的一个问题,好好学习了一下,进行总结如下:在bash中,可以用以下三种方式来处理命令行参数 ...
- 【linux】shell中命令替换$(cmd)和符号`cmd`
来源:https://zhidao.baidu.com/question/485498670.html 作用: $(cmd)和`cmd`的作用是相同的,在执行一条命令时,会先将其中的 ``,或者是$( ...
- 【转】Bash Shell中命令行选项/参数处理
原文网址:http://www.cnblogs.com/FrankTan/archive/2010/03/01/1634516.html 0.引言 写程序的时候经常要处理命令行参数,本文描述在Bash ...
- shell中命令代换$()与`` 、 变量代换${} 、 整数运算$(( )) 的区别
命令代换$()与`` . 变量代换${} . 整数运算$(( )) 1.$( ) 与 ` ` (反引号) 在 bash shell 中,$( ) 与 ` ` (反引号) 都是用来做命令替换用(comm ...
- Bash Shell中命令行选项/参数处理
0.引言 写程序的时候经常要处理命令行参数,本文描述在Bash下的命令行处理方式. 选项与参数: 如下一个命令行: ./test.sh -f config.conf -v --prefix=/home ...
随机推荐
- Android比较字符串是否为空(isEmpty)
StringUtils.java: package com.yx.equipment_collection.utils; import android.annotation.SuppressLint; ...
- perl 安装AnyEvent::HTTP
perl 版本 ActivePerl_5.16.2.msi
- 2013第38周日Java文件上传下载收集思考
2013第38周日Java文件上传&下载收集思考 感觉文件上传及下载操作很常用,之前简单搜集过一些东西,没有及时学习总结,现在基本没啥印象了,今天就再次学习下,记录下自己目前知识背景下对该类问 ...
- Android UI 之TextView控件属性列表
在网上收集到了TextView 的属性,在开发过程中还是挺有用的. android:autoLink 设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(non ...
- Codeforces Round #203 - D. Looking for Owls
D. Looking for Owls Emperor Palpatine loves owls very much. The emperor has some blueprints with the ...
- 写两个线程,一个对n每次加一,一个对n每次减一
public class A{ private static Integer n = 0; } public class B extends A implements Runnable ...
- Neighbour table overflow --- arp表溢出
[root@jiangyi01.sqa.zmf /home/ahao.mah] #grep . /proc/sys/net/ipv4/neigh/default/gc_thresh* /proc/sy ...
- jQuery效果-滑动
index.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &l ...
- yii 分页 (ajax)
Controller:class MemberController extends Controller { public function actionmember_list() { ...
- SQL Server 2008 导出数据与导入数据任务介绍
一. 实例数据库介绍 源数据库Test_Other_DB:存在tb_Class,tb_Student,tb_TestTable三张表. 目标数据库TestDB_Output:空库,不含任何表. 二. ...