gpt4 book ai didi

python - 在curl下载python脚本时添加延迟,然后通过管道执行脚本?

转载 作者:太空宇宙 更新时间:2023-11-04 04:58:51 25 4
gpt4 key购买 nike

我刚刚创建了一个 rickroll 恶作剧,供 friend 和家人玩。我希望能够使用有效的curl 命令从github 下载文件。我的问题是,当我使用管道并尝试执行脚本时,它会在执行 curl 之后、下载文件之前立即执行。

这是我尝试运行的命令:

curl -L -O https://raw.githubusercontent.com/krish-penumarty/RickRollPrank/master/rickroll.py | python rickroll.py

我也尝试使用 sleep 命令来运行它,但没有任何运气。

(curl -L -O https://raw.githubusercontent.com/krish-penumarty/RickRollPrank/master/rickroll.py; sleep 10) | python rickroll.py

最佳答案

扩展我的评论。

有多种方法可以使用大多数 shell 语言来链接命令(这里我假设使用 sh/bash 方言)。

  • 最基本的:;只会按顺序运行每个命令,在上一个命令完成后开始下一个命令。
  • 条件链接,&& 的工作方式与 ; 相同,但一旦命令返回错误(任何非 0 return code ),就会中止链接。
  • 条件链接,|| 的工作方式与 && 相同,但一旦命令成功就会中止链接(返回 0)。

你在这里尝试做的都不是这些,而是​​ piping 。由 | 触发,它会导致其两侧的命令同时运行,左侧命令的标准输出被输入到右侧命令的标准输入中。

您的第二个示例也不起作用,因为它会导致两个序列并行运行:

  • 第一个序列是curl,完成后接着是sleep
  • 第二个序列是 python 命令,与重定向为其输入的第一个序列写入的任何内容同时运行。

所以修复它:command1 && command2,将运行curl,等待它完成,并且仅在curl成功时运行python

再说一次,您可以使用示例来说明运行不完全理解的命令会造成多大的危害。让您的脚本用红色写“您的所有文件已被删除”,这对于教育人们有关该主题的知识很有帮助。

关于python - 在curl下载python脚本时添加延迟,然后通过管道执行脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39129116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com