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

おすすめ記事