在curl下载python脚本并通过管道执行脚本时添加延迟?

2024-09-30 04:28:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我只是在朋友和家人身上开了个恶作剧。我希望能够使用curl命令从github下载该文件。我的问题是,当我使用管道并尝试执行脚本时,它会在curl被执行之后,在它下载文件之前执行。在

这是我试图运行的命令:

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

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

^{pr2}$

Tags: 文件pyhttps命令github脚本raw管道
1条回答
网友
1楼 · 发布于 2024-09-30 04:28:00

扩展我的评论。在

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

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

你要做的不是这两个,而是piping。{6在标准的一只手的输入端被一只输入端触发。在

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

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

所以修复它:command1 && command2,将运行curl,等待它完成,只有在curl成功时才运行python。在

同样,你可以用你的例子来说明运行你不完全理解的命令是多么的有害。让你的脚本用红色写下“你所有的文件都被删除了”,这对教育人们这方面的知识很有帮助。在

相关问题 更多 >

    热门问题