zsh: =() 실행 권한으로 대체됨

zsh: =() 실행 권한으로 대체됨

이 명령에 대한 실행 파일을 제공해야 합니다.

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
)

여기서는 익명 함수를 통해 수행됩니다. 이는 임시 파일의 범위를 더 잘 지정하는 데 도움이 되며 파일 이름에 대해 원하는 수의 명령을 실행할 수 있게 해줍니다.

관련 정보