unix Bash执行过程

pgvzfuti  于 2022-12-03  发布在  Unix
关注(0)|答案(1)|浏览(158)

我写了这样一个bash脚本:

#!/bin/bash
var=2
echo result: $(expr "$var" + 1) > test.out

我使用./test命令从shell运行它,它将创建文件test.out,并将输出保存到该文件中

result: 3

我很想更详细地了解bash用来替换值、重定向stdout并将输出生成到文件中的底层步骤。
您能否解释一下操作系统是如何处理此脚本的执行的?

dtcbnfnu

dtcbnfnu1#

下面是一个简单的模式,其中包含执行脚本后发生的主要步骤:

* --> Script execution -> Shell --> Expansion --> Command execution

在执行脚本中的命令之前,首先shell会将命令准备为带有重定向和输入/输出管道的过滤器。之后,当shell查找特殊字符并替换它们时,会进行shell扩展。
关于替换,它遵循以下顺序:
1.命令替换:反引号中的命令将被执行并由其结果替换
1.变量和参数的替换:变量(例如$var)的值被展开
1.使用模式匹配将元字符(*?)替换为文件名

相关问题