这个 bash 叉子炸弹是如何工作的? [复制]

2023-11-22

根据维基百科,以下是一个非常优雅的 bash fork 炸弹:

:(){ :|:& };:

它是如何工作的?


拆开来看,主要分为三大块:

:()      # Defines a function, ":". It takes no arguments.
{ ... }; # The body of the function.
:        # Invoke the function ":" that was just defined.

在体内,该函数被调用两次并且管道处于后台;进程上的每次连续调用都会产生更多对“:”的调用。这会迅速导致系统资源的爆炸性消耗,使一切陷入瘫痪。

请注意,无限递归地调用一次它还不够好,因为这只会导致原始进程出现堆栈溢出,这很混乱,但可以处理。

更人性化的版本如下所示:

kablammo() {             # Declaration
  kablammo | kablammo&   # The problematic body.
}; kablammo              # End function definition; invoke function.

Edit:威廉下面的评论是我上面所说的更好的措辞,所以我进行了编辑以纳入该建议。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

这个 bash 叉子炸弹是如何工作的? [复制] 的相关文章

  • awk 脚本中出现“BEGIN 块必须有操作部分”错误

    这是我的代码 bin sh filename usr bin find name INSTANCE log echo filename is filename awk BEGIN print Processing file filename
  • Bash 中所有匹配的^单词^替换^?

    为了澄清 我正在寻找一种方法来执行global搜索并替换先前使用的命令 word replacement 似乎只替换了第一场比赛 有没有一些set我无法选择的选项 尝试这个 echo oneone oneone gs one two Rep
  • grep 排除文件的数组参数

    我想从我的文件中排除一些文件grep命令 为此我使用参数 exclude excluded file ext 为了更容易阅读 我想使用包含排除文件的 bash 数组 EXCLUDED FILES excluded file ext 然后将
  • 在 docker 中重定向命令输出

    我想为我的服务器做一些简单的日志记录 它是一个在 Docker 容器中运行的小型 Flask 应用程序 这是 Dockerfile Dockerfile FROM dreen flask MAINTAINER dreen WORKDIR s
  • Slurm:提交到多个节点时出错(“slurmstepd:错误:execve():python:没有这样的文件或目录”)

    我有一个 bash 脚本submit sh用于向 Slurm 服务器提交训练作业 其工作原理如下 正在做 bash submit sh p1 8 config file 将提交一些对应的任务config file至 8 个 GPU 分区p1
  • 获取最新远程提交的 SHA1 [重复]

    这个问题在这里已经有答案了 可能的重复 git bash 如何检查是否有新的提交可用 https stackoverflow com questions 6006759 git bash how to check if theres a n
  • 如何处理文件中的特殊字符(ഀ)

    我有一个文件 当我打开它时 它看起来像这样 Notepad A B C D E 31 HB 39 Ph 49 32 FB 38 Ph 59 当我尝试从 WinScp 打开它时 它看起来如下所示 A B C D E 31 HB 39 Ph 4
  • shell中如何分割字符串

    我有一个变量作为 string ABC400p2q4 我怎样才能分开ABC400 and p2q4 我需要将它分成两个变量 结果我得到 echo var1 ABC400 echo var2 p2q4 可以用任何字母字符代替 ABC 可以用任
  • 在 byobu 选项卡中启动命令的脚本

    我已经使用 screen 来启动服务器进程 以便稍后我可以在需要时附加并再次分离以继续执行其他操作 它工作得很好 但我最近发现了 byobu 我真的很喜欢它 我想使用相同类型的脚本来运行服务器 但我想将其附加到 byobu 选项卡 而不是屏
  • 在 .gitconfig 中隐藏 GitHub 令牌

    我想将所有点文件存储在 GitHub 上 包括 gitconfig 这需要我将 GitHub 令牌隐藏在 gitconfig 中 为此 我有一个 gitconfig hidden token 文件 这是我打算编辑并放在隐藏令牌的 git 下
  • GitHub Actions:如何将 toJSON() 结果传递给 shell 命令

    因此 我正在与 Github Actions 合作进行端到端测试 我正在查看的设置是让一项作业检索要测试的 url 列表 而我的第二项作业使用该列表创建一个矩阵并测试所有这些 我的问题是 当我实际运行测试脚本时 必须从命令行完成 因为我使用
  • 如何使用bash脚本获取分区的偏移量?

    我可以用parted找出我的图像的偏移量 sudo parted s image img unit B print Model file Disk home user image img 107374182400B Sector size
  • bash 脚本抱怨文件名太长

    所以我有一个脚本可以执行此操作 jq 是命令行 JSON 处理器 echo Getting LB Node IDs echo LB STATUS jq loadBalancer nodes id 最后一行的输出是 1 2 3 但是当我尝试将
  • 并行运行 shell 脚本

    我有一个 shell 脚本 打乱大型文本文件 600 万行和 6 列 根据第一列对文件进行排序 输出 1000 个文件 所以伪代码看起来像这样 file1 sh bin bash for i in seq 1 1000 do Generat
  • 检查 Git 中是否需要 pull

    如何检查远程存储库是否已更改并且需要拉取 现在我使用这个简单的脚本 git pull dry run grep q v Already up to date changed 1 但它比较重 有没有更好的办法 理想的解决方案是检查所有远程分支
  • Bash:单行命令以与 grep 命令相反的状态退出?

    如何减少以下 bash 脚本 grep P STATUS Perfect recess txt exit 1 exit 0 看起来我应该能够用一个命令来完成它 但我这里总共有 3 个命令 我的程序应该 阅读课间休息 txt 如果它包含 ST
  • 如何扩展路径中的波形符(~)[重复]

    这个问题在这里已经有答案了 我有一个 shell 脚本 可以从用户那里获取目录路径 但我需要检查目录是否为空 如果用户将他的主路径与 而不是绝对路径 所以我无法检查它ls echo Specify your project root dir
  • 使用os.execlp时,为什么`python`需要`python`作为argv[0]

    代码是这样的 os execlp python python child py other args this works os execlp python child py other args this doesn t work 我读过
  • 如何检查主机是否在您的known_host ssh中

    我的脚本中使用以下命令 将主机添加到 ssh 中的已知主机 VAR2 expect c spawn ssh o StrictHostKeyChecking no REMOTE HOST USER REMOTE HOST IP expect
  • 正则表达式匹配bash变量

    我正在尝试修改 bash 脚本 当前脚本包含 print div class 1 div Where 1可能看起来像 Apprentice Historian Level 1 Historian Level 4 Master Histori

随机推荐

  • D3 转换 - 暂停和恢复

    我试图从这里理解 D3 转换的 暂停 和 恢复 guide 虽然我理解 暂停 是如何工作的 但当谈到 恢复 时我却一点也不迷茫 我无法理解作者的解释 特别是 线性 或第一份简历说明 我的问题是什么e attr T 0 and attr T
  • 在 C# 中将 Access 图像 OLE 对象转换为原始图像字节数组

    对于我真正的问题 我似乎无法得到全部答案从数据库检索图像时参数无效所以我会一点一点地尝试 在 C 和 MS Access 2010 中使用 Visual Studio 2012 我的解决方案是一个与网络无关的应用程序 我不确定这部分 所以我
  • 使用 jquery 切换时未选中复选框

    我希望在使用 jquery 切换功能时选中该复选框 当我使用时效果很好 bind click chkb toggle function va text checked chkb attr checked checked function c
  • 如何在 web.xml 中配置欢迎文件列表

    我的 web xml 文档中有这个 我正在尝试创建一个欢迎列表 这样我就不需要再输入主页的路径了 但是每次单击我的 tomcat 页面中的应用程序时 它都会显示请求的资源不可用
  • RoleInterface 抛出“调用非对象”错误

    我正在使用 Symfony 2 0 16 我的 UserProvider 中有 getRoles 方法 public function getRoles var Doctrine Common Collections ArrayCollec
  • 如何更改 jqGrid 中的 sidx、sord、filters 参数名称

    如果列名是 sidx sord filters jqGrid 获取数据就会被破坏 我尝试使用下面的代码向它们添加下划线 但这些参数仍然在没有下划线的情况下传递 其他参数如 rowid page 等均使用下划线正确传递 如何使用 sidx s
  • 从 dom 中删除任何元素后,Touchmove 事件停止触发

    在 iPad 或移动仿真模式铬 追踪时touchmovebody 上的事件并从 dom 中删除一个元素 touchstart 开始的元素 touchmove来自身体的事件停止触发 我做了一个example http jsbin com yi
  • 为什么 Spark 不允许映射端与数组键组合?

    我正在使用 Spark 1 3 1 我很好奇为什么 Spark 不允许在映射端组合上使用数组键 一片combineByKey function if keyClass isArray if mapSideCombine throw new
  • C# 如何通过给定进程 ID 最小化另一个应用程序?

    我想通过进程 ID 最小化应用程序 我搜索了SO并找到了以下代码 private const int SW MAXIMIZE 3 private const int SW MINIMIZE 6 DllImport user32 dll En
  • brew 安装 php56 后出现库未加载错误

    我正在使用自制软件在 OSX Mavericks 上从 php5 5 升级到 php5 6 我跑 brew install php56 一切都运行并完成得很好 但是当我运行时php v出现以下错误 dyld Library not load
  • Firebase:隐形 reCaptcha 在 React JS 中不起作用

    Overview 你好 我正在使用Firebase 的隐形 reCaptcha用于我的电话号码验证React JS应用 根据文档您需要提供的 Firebaseid e g sign in button 处理登录表单提交的按钮 预期行为 一旦
  • 在 CloudFormation 文件中使用 apt-get 安装软件包

    我有以下 CloudFormation 脚本 正在创建堆栈并启动 Ec2 实例 我可以通过 SSH 连接 但它没有安装软件包 我不确定它失败在哪里 我正在使用Ubuntu 我找不到我的实例上是否安装了 cfn init 还是仅为 Amazo
  • 如何在Java中循环遍历类属性?

    如何动态循环java中的类属性 For eg public class MyClass private type1 att1 private type2 att2 public void function for var in MyClas
  • 对于特定提交,Git-merge 和 Git-cherry-pick 有什么区别?

    a 之间有区别吗 git merge
  • 在 ZipArchive C# .Net 4.5 中创建目录

    ZipArchive 是 ZipArchiveEntries 的集合 添加 删除 Entries 效果很好 但似乎没有目录 嵌套 档案 的概念 理论上 该类与文件系统解耦 因为您可以完全在内存流中创建存档 但是 如果您希望在存档中添加目录结
  • 如何读取“adb shell dumpsys Alarm”输出

    我正在努力正确设置闹钟 并理解取消和重新安排闹钟的机制 我发现有一个 adb 命令可以检索设备上安排的所有警报 但我没有找到解释输出格式的文档 我确实理解 我在这里要求很多解释 所以如果有人会抛出一个包含有关 adb shell dumps
  • Facebook 官方图标 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我将为 iOS Android 和 Windows Phone 开发与 Facebook 连接的应用程序 我正在寻找http developer f
  • IDataErrorInfo 与 IValidatableObject?

    目前我的业务对象实现IDataErrorInfo 由于我打算在 ASP NET MVC 3 中使用这些库 我认为我应该实现IValidatableObject以及或者也许代替 WPF 可以与IValidatableObject 数据注释如何
  • 等待 selenium 和 c# 中完成下载文件

    我有一些问题 我在单击 Web 应用程序上的图标后下载文件 我的下一步是在下载记录文件之前执行的 我想等到文件下载完毕 有谁知道如何等待吗 我使用以下脚本 filename应该传入 第一部分等待文件出现在磁盘上 适用于 chrome 第二部
  • 这个 bash 叉子炸弹是如何工作的? [复制]

    这个问题在这里已经有答案了 根据维基百科 以下是一个非常优雅的 bash fork 炸弹 它是如何工作的 拆开来看 主要分为三大块 Defines a function It takes no arguments The body of t