Was ist die Ursache dafür, dass die Datei nicht vom Benutzer auf dem Windows-Subsystem für Linux ausgeführt werden kann?

1042
Wayne Werner

Dies scheint vor einigen Tagen zufällig begonnen zu haben. Bisher war es gut, Fish Shell von Ubuntu bash für Windows auszuführen. Aber plötzlich, wenn ich Tabnach Autovervollständigung klicke, wird es mit:

The file "x86" is not executable by this user in command substitution called on standard input 

Wenn ich nur tippe x86, wird kein Befehl ausgeführt, aber es sagt mir:

The file "x86" is not executable by this user 

Allerdings which x86gibt nichts.

Gibt es einen Hinweis, was in der Welt hier vor sich gehen könnte?

4
was ist dein pwd? Befinden Sie sich im Pfad oder führen Sie einen Pfad zu c: \ program files (x86) \ aus? bash parkt das wahrscheinlich als mehrere Dateinamen. Fenster sollten niemals Leerzeichen in Dateinamen erlaubt haben ... Frank Thomas vor 6 Jahren 0
Ah, es sieht so aus, als ob "/ mnt / c / Program Files (x86) / NVIDIA Corporation / PhysX / Common" (neben einigen anderen) auf meinem PFAD steht. Gibt es eine Möglichkeit, diese zu eliminieren, da sie für das Subsystem nicht einmal aus der Ferne relevant sind ... Ich meine, ich könnte den PFAD natürlich manuell einstellen Wayne Werner vor 6 Jahren 0

2 Antworten auf die Frage

2
Zanchey

Dies war ein Fehler in Fisch, der in Version 2.3.0 behoben wurde. Falls er in späteren Versionen noch vorhanden ist, wäre ein Bericht sehr dankbar.

Sie können eine neuere Version aus den Ubuntu PPA-Repositorys installieren, wenn die installierte Version apt-getzu alt ist.

Ihre Frage löst das Problem, meine streift nur :) Vedant vor 6 Jahren 0
0
Vedant

Das Problem hier ist in  completer_t::complete_cmd, was expand_string aufruft. Dies ist eine sehr allgemeine Funktion, die Dinge wie Platzhalter, Prozesserweiterung, Variablenerweiterung usw. erweitert.

Es ist sicherlich falsch, diese Erweiterungen in den Komponenten von $ PATH vorzunehmen.