%20%E6%9B%BF%E6%8D%A2%E4%B8%BA%E5%8F%AF%E6%89%A7%E8%A1%8C%E6%9D%83%E9%99%90.png)
我需要为该命令提供一个可执行文件:
aria2c “some-url” —on-download-complete =(echo “!#/usr/bin/env bash
touch success”)
这可能吗?如果没有,我可以实现一些辅助函数来使类似的事情成为可能吗?
答案1
临时文件不可执行,
% stat -f '%Sp' =(echo echo echo)
-rw-------
所以需要以某种方式标记为这样
#!/usr/bin/env zsh
TMPPREFIX=/because/tmp/is/mounted/noexec/on/my/system/tmp/zsh
fakearia () { $1 }
() {
chmod +x $1
fakearia $1
} =(<<EOF
#!/bin/sh
echo echo
EOF
)
这里通过一个匿名函数,这也有助于更好地确定临时文件的范围,并允许在文件名上执行任意数量的命令。