【发布时间】:2020-02-05 21:05:55
【问题描述】:
我想创建一个临时 shell 脚本,并将其作为参数传递给另一个脚本,即回调挂钩。是否可以为此使用流程替换?
在此示例中,aria2c 允许将挂钩作为参数。下载页面后,aria2c 将使用一些参数调用该钩子。理想情况下,我希望 aria2c 调用我的“虚拟”脚本,而无需先制作任何临时文件,如下所示:
aria2c \
--on-download-complete <(echo '#!/bin/sh'; echo 'echo "Called with [$1] [$2] [$3]"') \
https://aria2.github.io/
但结果我得到一个许可错误:
Could not execute user command: /dev/fd/63: Permission denied
【问题讨论】:
-
因为
aria2使用execlp,相信是不可能的,还得创建一个临时文件。 -
“我希望我的脚本直接调用 aria2c”?你的意思是“我希望 aria2c 直接调用我的脚本”?
-
@jhnc 我的意思是我希望 aria2c 调用一个不作为文件存在的脚本,而只是作为
/dev/fd。我在帖子中澄清了语言。