我需要为该命令提供一个可执行文件:
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
)
这里通过一个匿名函数,这也有助于更好地确定临时文件的范围,并允许在文件名上执行任意数量的命令。