Fish: 이 사용자는 파일을 실행할 수 없습니다.

Fish: 이 사용자는 파일을 실행할 수 없습니다.

내가 그랬어물고기 기능존재하다 ~/.config/fish/functions/confgit.fish:

function confgit
    /home/john/Projects/confgit $argv
end

하지만 이 함수를 실행하면 다음과 같이 표시됩니다.

fish: The file “/home/john/Projects/./confgit” is not executable by this user  
    /home/john/Projects/./confgit $argv  
    ^  
in function 'confgit'

구성 파일은 일반적인 Python 스크립트입니다. 실행해 보니 ./confgit잘 되더군요.

스크립트의 권한은 다음과 같습니다.

-rwxr-xr-x  1 john john 5.8K 29. nov 02.04 confgit*

이 기능을 사용하려면 이 문제를 어떻게 해결해야 합니까?
당신의 도움에 감사드립니다

답변1

나는 귀하의 문제를 재현하기 위해 애썼으며 제가 모방할 수 있는 가장 가까운 것은 다음과 같습니다.

# file: ~/bin/janstest
echo $argv
# file: ~/bin/janstest2
function janstest
  ~/bin/janstest $argv
end

janstest It works!

파일 권한은 다음과 같습니다.

stew@stewbian ~> ls -l ~/bin/jans*
-rwxr-xr-x /home/stew/bin/janstest*
-rwxr-xr-x /home/stew/bin/janstest2*

실행하면 다음과 같은 오류가 발생합니다.

stew@stewbian ~> ~/bin/janstest2
Failed to execute process '/home/stew/bin/janstest2'. Reason:
exec: Exec format error
The file '/home/stew/bin/janstest2' is marked as an executable but could not be run by the operating system.
stew@stewbian ~ [125]>

#!/usr/bin/fish해결책은 스크립트 앞에 추가하는 것입니다.

stew@stewbian ~> cat ~/bin/janstest2
#!/usr/bin/fish
function janstest
  ~/bin/janstest $argv
end

janstest It works
stew@stewbian ~> ~/bin/janstest2
It works

관련 정보