在 Bash 中 fork
本文介绍了用于fork新的异步子进程的 C/C++ 分叉系统调用的 Bash 等效项(即子 shell)的介绍性教程。
在 Bash 中fork
C/C++中的系统调用是创建一个新的进程,即调用进程的子进程。 创建新进程后,两个进程将异步执行。
两者都有自己的地址空间。 没有一个进程会在其执行结束之前等待其他进程结束; 然而,在 Bash 中,这些子进程被称为子 shell。
这些子 shell 并行运行,允许同时完成多个任务。 因此,Bash 中的 fork 功能可以通过创建新的子 shell 来实现。
要创建子 shell,我们遵循以下语法:
(sub_process) &
我们将要作为子进程执行的函数或任何代码行括在括号中,然后放置一个 &
符号。 这些括号内的所有语句都将构成一个子进程并作为子 shell 执行。
考虑以下示例:
在这个例子中,我们创建了函数 child_process()
并编写了一些语句。 后来,我们通过将它括在括号中并在末尾放置一个 & 来调用该函数。
这样,该函数将在子 shell 中调用。 Parent shell 将同时执行它的下一条语句。
我们可以从输出中看到,父进程(因为它同时运行)在子进程可以处理其打印语句之前打印了下一条语句。
子shell中的变量
就变量而言,所有 shell,无论是父 shell 还是子 shell,都会有它们的变量。 由于两者都有自己的地址空间,进程最终会有单独的局部变量。
让我们看下面的例子:
在这个脚本中,我们在父进程中创建了一个变量 local_var 并设置了它的值。 稍后在 child_process 函数中,我们为子 shell 分配了一个新值。
创建子进程后,父进程打印变量的值,因此父进程的值将被打印。
输出将如下所示:
从上面的输出我们可以看出,局部变量在子进程的代码块之外是不可访问的。 即使是父进程也无法访问子进程设置的值。
相关文章
在 Bash 中继续下一行
发布时间:2023/06/10 浏览次数:161 分类:操作系统
-
这篇简短的文章是关于在 Linux 或 UNIX 中执行 Bash 脚本时对规则的解释。 在进入正题之前,让我们简单介绍一下 Bash 编程。在 Bash 中继续下一行
Bash 中 Syntax Error Near Unexpected Token 错误
发布时间:2023/06/09 浏览次数:67 分类:操作系统
-
本文演示如何识别和更正由于 Bash 脚本中的不可见字符而导致的意外令牌语法错误。Bash 中 Syntax Error Near Unexpected Token 错误 有时,语法上看起来完美无缺的 Bash 脚本不起作用。 你会得到一个模
修复 Bash 中未找到 Mkvirtualenv 命令的错误
发布时间:2023/06/09 浏览次数:102 分类:操作系统
-
本文演示了如何修复 Bash 中的 mkvirtualenv: command not found 错误。修复 bash 中的 mkvirtualenv: command not found 错误 如果你试图在 Python 中创建一个虚拟环境并看到类似这样的东西,
解决在 Bash(或 Cygwin)上找不到 R 命令
发布时间:2023/06/09 浏览次数:84 分类:操作系统
-
本文将帮助您了解错误消息以及如何解决或防止此类错误再次发生。解决bash: '\r': command not found With Notepad++ 不同的操作系统行为不同,Windows 通常是不同的。 如前所述,\r 字符的存在是导致此错
解决 Nodemon Command Not Found
发布时间:2023/06/09 浏览次数:122 分类:操作系统
-
本文将讨论如何解决和处理 nodemon command not found 错误。使用npm解决Nodemon Command Not Found 通过 npm,我们可以安装有用的功能库、包和工具来改进我们在 NodeJS 平台上的开发。
解决在 Cygwin中的错误 Make Command Not Found
发布时间:2023/06/09 浏览次数:190 分类:操作系统
-
本文将讨论处理 bash: make: command not found in Cygwin 的方法。通过安装解决bash: make: command not found in Cygwin
Bash 中的错误处理
发布时间:2023/06/09 浏览次数:134 分类:操作系统
-
本文介绍了 bash 中的错误处理。 请记住,了解退出代码、选项(如 errexit 和 trap)使我们能够构建健壮的脚本并更有效地管理 bash 问题。Bash 中的退出代码 基于退出代码处理错误是检测命令失败
Bash 中 Curl 命令的 Urlencode 数据
发布时间:2023/06/09 浏览次数:175 分类:操作系统
-
本文将教我们如何在 bash 中为 curl 命令对数据进行 urlencode。 让我们从 curl 命令的语法开始。Bash 中的 curl 命令 curl 命令的基本语法如下:
在 Bash 中获取绝对路径
发布时间:2023/06/09 浏览次数:96 分类:操作系统
-
在这篇 Bash 文章中,我们将学习在 Linux 中获取绝对路径的不同方法。 我们还将学习一些不同的 Linux 命令来获取文件的绝对路径。