Der Befehl cywin bash script wurde beim Aufruf aus dem Stapel nicht gefunden

8
%Vor%

Das obige Skript funktioniert, wenn es in der cygwin-Konsole aufgerufen wird, aber wenn ich versuche, es aus einer Batch-Datei aufzurufen, bekomme ich "Befehl nicht gefunden" für den Befehl date und tar. Ich denke, dass bash.exe PATH nicht eingerichtet hat.

Ich muss dieses Skript aus dieser Batch-Datei ausführen, weil ich das Skript dem Taskplaner hinzufügen möchte.

    
rtacconi 29.07.2009, 16:48
quelle

5 Antworten

8

Setzen Sie Ihr cygwin bin-Verzeichnis (wahrscheinlich C:\cygwin\bin ) auf Ihre PATH-Umgebungsvariable.

Dies würde Ihnen auch den Vorteil bringen, Befehle wie tar , ls , rm usw. von einem normalen Konsolenfenster und nicht nur von einer Cygwin-Konsole zu verwenden.

    
matt b 29.07.2009, 16:53
quelle
15

Wie bereits erwähnt, müssen Sie die Cygwin-Binärdateien zu Ihrem Pfad hinzufügen. Klicken Sie dazu mit der rechten Maustaste auf "Arbeitsplatz", klicken Sie auf "Eigenschaften", dann auf "Erweitert" und dann auf "Umgebungsvariablen".

Erstellen Sie eine neue Umgebungsvariable mit dem Namen "CYGWIN_HOME" und dem Wert "C: \ cygwin" (oder wo auch immer Sie cygwin installiert haben. Der Standardspeicherort ist "C: \ cygwin \"; dies sollte wahrscheinlich für Sie funktionieren).

Bearbeiten Sie dann die Umgebungsvariable "PATH", und führen Sie die folgenden Schritte bis zum Ende durch:

;% CYGWIN_HOME% \ bin;% CYGWIN_HOME% \ sbin;% CYGWIN_HOME% \ usr \ bin;% CYGWIN_HOME% \ usr \ sbin;% CYGWIN_HOME% \ usr \ lokal \ bin;% CYGWIN_HOME% \ usr \ local \ sbin

Schließen Sie die Eingabeaufforderung, und öffnen Sie sie erneut. Die Cygwin-Binärdateien sollten jetzt verfügbar sein. Sie können dies überprüfen, indem Sie "which bash" eingeben. Es sollte den Speicherort Ihrer ausführbaren Bash-Datei melden.

    
Michael Aaron Safyan 29.07.2009 17:04
quelle
10

FWIW, Cygwin hat cron .

Rufen Sie Ihr Skript so an?

%Vor%     
seth 29.07.2009 16:54
quelle
2

Wenn dieses Skript von einer Windows-Befehlsshell aufgerufen wird, führt die erste Zeile zu einem Fehler, da #!/bin/bash kein anerkannter Windows-Befehl ist und # kein gültiges Kommentartrennzeichen in einer Batchdatei ist.

>

Die Quintessenz ist, dass dieses Skript als normale Batch-Datei und nicht in Cygwins bash ausgeführt wird. Wie von matt b angegeben, haben Sie wahrscheinlich nicht den ausführbaren Pfad von Cygwin in Ihrer Umgebungsvariablen PATH. Andernfalls kann die Batchdatei die Cygwin-Dienstprogramme nicht finden ( tar und date ).

    
Tim Henigan 29.07.2009 17:04
quelle
0

Ich hatte gerade dieses Problem.

Das Bearbeiten der Umgebungsvariablen funktioniert großartig. Aber wenn Sie keine Administratorrechte haben, können Sie das nicht tun. In diesem Fall können Sie Ihre Befehle ausführen, indem Sie den absoluten Pfad wie folgt verwenden:

%Vor%

Wenn Sie dies tun, funktioniert Ihr Bash-Skript auch, wenn Sie es aus einer Batch-Datei aufrufen.

    
Itaipu 07.10.2015 14:32
quelle

Tags und Links