Wie execute.sh -Datei unter Windows?

Wenn ich versuche, eine Datei auszuführen(name.sh) in der Befehlszeile durch den Befehl ./name.sh , Ich bekomme den Fehler, dass:

"."wird nicht als intern erkannt oder externer Befehl, bedienbar oder Batch Datei -

Bitte helfen Sie mir, die. sh-Datei auszuführen

Author: Broam, 2010-03-15

15 answers

Sie sind auf Windows CMD.EXE (aus der Fehlermeldung). Es verwendet eine andere syntax, um Befehle auszuführen. Sie müssen sh name.sh verwenden, vorausgesetzt, Sie haben Cygwin oder ähnliches installiert.

Zur Verdeutlichung verfügt Windows nicht über ein integriertes Dienstprogramm zur Unterstützung von .sh-Dateien. Um dies auszuführen, müssen Sie ein Drittanbieter-Tool wie Cygwin installieren.

 80
Author: Roger Lipscombe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-08-31 15:19:17

Sie versuchen, einen Linux-Befehl an der Windows-Eingabeaufforderung auszuführen.

Unter Linux ist der Schrägstrich ein Pfadtrennzeichen. Unter Windows ist der Backslash ein Pfadtrennzeichen und der Schrägstrich zeigt im Allgemeinen ein Argument an.

Daher denkt Windows, dass Sie versuchen, einen Befehl namens "auszuführen."und analysieren es das Argument "/name.sh". Die richtige Konvention wäre". \name.sh". Zusätzlich durchsucht Windows automatisch das aktuelle Verzeichnis nach Ihrem Befehl, sodass Sie Folgendes tun können nur Typ "name.sh".

Das nächste Problem, mit dem Sie konfrontiert werden, ist, dass Windows nicht weiß, was ein sh-Skript ist, auch dies ist eine Linux-Sache. Sie können dies lösen, indem Sie Cygwin installieren, wenn Sie wirklich ein sh-Skript ausführen möchten oder müssen.

Nach einem Ihrer vorherigen Kommentare können Sie das Skript jedoch genauso gut in name umbenennen.bat und löschen Sie das "#!/bin/sh" - Linie. Jetzt haben Sie eine Batch-Datei, die Windows verstehen sollte. Sie können mehr über Batch-Dateien hier lesen.

 14
Author: Martin Fido,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-03-15 13:48:44

Beste Lösung meiner Meinung nach:

  • Herunterladen und installieren .git für Windows

  • Klicken Sie mit der rechten Maustaste auf desktop und sagen Sie "git bash here"

  • Führen Sie Ihr Skript wie in unix

  • Fertig!

Achtung: Viele Befehle funktionieren unter Windows nicht! Aber trotzdem wird ein Großteil der grundlegenden Dinge funktionieren.

Wenn Sie dieses Skript regelmäßig benötigen, möchten Sie möglicherweise eine Verknüpfung erstellen (auf Ihrem (z.B.):

  • Erstellen Sie eine Verknüpfung zu mintty.exe auf Ihrem Desktop

  • Bearbeiten Sie die Eigenschaften der Verknüpfung und ändern Sie das Ziel (behalten Sie den Pfad bei):

  • C:\Program Files\Git\usr\bin\mintty.exe" -h always /bin/bash -l -e 'D:\folder\script.sh'

 14
Author: Hannes Schneidermayer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-04-09 18:58:10

Alternativ könntest du dich der dunklen Seite zuwenden und Linux installieren. Von der Eingabeaufforderung:

sh runide.sh

Oder

sudo sh runide.sh

Ihr Programm wird ausgeführt und Sie haben auch ein besseres System.

 10
Author: steve,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-07-29 03:22:14

Sie versuchen, Ihr Auto mit Orangensaft statt Benzin zu fahren. Windows teilt ähnliche Befehle gespeichert in .fledermaus oder .cmd-Dateien mit Unix / Linux / zOS Unix-Subsystem / * ix-Shell-Skripten, da diese beiden Betriebssystemfamilien einen gemeinsamen Vorfahren haben, die DEC PDP-x-Maschinen.

Wenn Sie sofortige Befriedigung wünschen, müssen Sie eine Umgebung installieren, die ein "sh.exe" - Programm oder "csh.exe" oder "bash.exe" - Programm (tsh.exe jemand?)

Alternativ, wenn Sie Unix kennen script-Befehle, sehr gut, und Sie kennen Windows .cmd und .bat-Datei Befehle, sehr gut, Sie können die .sh-Datei in eine übersetzen .fledermaus oder .cmd-Datei. Trotzdem werden Sie oft auf Programme im Unix-Stil stoßen, die unter Windows kein Äquivalent haben-grep, sed, vi, Emacs usw. Daher der Aufruf zur Installation von CygWin (kein Minimalist) - nur um die Shell-und Unix-Tools zu erhalten. Legen Sie es auf einem Flash-Laufwerk, für diese besonderen Anlässe.

 5
Author: J.M.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-08-16 22:52:50

Jemand sagte etwas über MS-DOS mit / für Befehle und \ für Pfade. Dies ist etwas irreführend. Schau dir mein Beispiel an:

C:\myfoo\foo\>cd../.. 
C:\myfoo\foo\>cd..\..

Hat keinen Unterschied in der Wirkung. Ja, es ist nicht für alle Operationen wahr – die eigentliche Antwort ist einfach Nein, oder ohne Cygwin oder SSHD können Sie nicht.

Ich weiß es nur, weil ich dummerweise einen halben Tag damit verbracht habe herauszufinden, was if then fi und eval, exec do with -Djava.something when called.

 3
Author: grizzleybear123,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-05-29 07:51:46

Verwenden Sie Github für Windows. Es enthält alle ausführbaren Unix-Umgebungsdateien.

Https://github-windows.s3.amazonaws.com/GitHubSetup.exe

 2
Author: Nederealm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-07-20 16:24:31

Ich fand eine andere und einfache Lösung namens UnixUtil.

Laden Sie es herunter und entpacken Sie es in C: drive. Setzen Sie die Umgebungsvariable path auf include C:\UnixUtils\usr\local\wbin.

Das ist wichtig. Setzen Sie DEN Pfad NICHT auf C:\UnixUtils\bin

 1
Author: prabhanjan deshpande,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-05-13 22:43:31

Der Vollständigkeit halber möchte ich eine neue Funktion "Windows-Subsystem für Linux" für Windows 10 erwähnen. Die details sind beschrieben in http://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/

Hinweis, dass es erfordert aktivieren sie die "Entwickler Modus" schalter und aktivieren Sie die Option "Windows Subsystem für Linux (Beta)" option.

Für mich selbst habe ich festgestellt, dass Git für die Windows-Installation (die ich sowieso verwende) ausreichend ist.

 1
Author: Michael Freidgeim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-12-27 10:39:14

Dies ist ein alter Thread, aber für diejenigen, die Windows 10 ausführen. Öffnen Sie einfach Windows-Funktionen über die Systemsteuerung "Windows-Funktionen ein-oder ausschalten"

Wählen Sie die Funktion 'Windows-Subsystem für Linux'. Nach der Installation haben Sie 'Bash' und Sie können sogar native Linux-Server in Bash konfigurieren. Und natürlich, der Befehl sh innerhalb von bash funktioniert ebenfalls.

 1
Author: Egbert,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-05-01 16:06:51

Es ist möglich, dass sich das Problem tatsächlich in der Datei name.sh - Sie versuchen, den Befehl . zu verwenden, aber es wird versucht, eine Art Shell auszuführen (z. B. csh, denke ich), in der dies kein gültiger Befehl ist.

Also: beginnt name.sh mit dem richtigen #!/bin/sh (wenn Sie tatsächlich versuchen, sh auszuführen)?

 0
Author: Andrew Jaffe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-03-15 07:55:19

Ok, daran ist VIEL falsch-lass das #fallen!/bin / sh, und ändern Sie die Erweiterung in bat, und es könnte mit ein paar weiteren Korrekturen funktionieren. Dann können Sie es auch einfach anhand seines Dateinamens aufrufen.

Die Syntax eines Unix-Shell-Skripts und einer Windows-Batchdatei sind nicht allzu ähnlich. cygwin oder eine Menge Herumspielen mit Unxutils könnten etwas bewirken, das in beiden funktioniert, aber wenn Sie nicht ABSOLUT sicher sind, ob die Umgebung immer dieselbe ist, ist es die Kopfschmerzen nicht wert

 0
Author: Journeyman Geek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-03-15 13:46:42

Wenn Sie eine Linux-Box zu Hause (oder bei der Arbeit) haben und an dasselbe Netzwerk angeschlossen sind und dieses Netzwerk sicher ist, kann dies den Trick tun:

  1. Machen Sie eine Ordnerfreigabe unter Windows (ziemlich einfach, aber stellen Sie sicher, dass das Netzwerk vor Eindringlingen geschützt ist).
  2. Mounten Sie es unter Linux mit mount //WinMachine/Share LinuxFolder (IIRC und erfordert Samba).
  3. Melden Sie sich mit etwas wie PuTTY remote bei dieser Linux-Box an.
  4. Führen Sie Ihren Befehl im eingehängten Ordner aus.
 0
Author: Camilo Martin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-08-31 15:16:38

Um das Shell-Skript von Windows aus auszuführen. Verwenden Sie zuerst den Befehl : dos2unix dann können Sie Ihren normalen Befehl verwenden : sh runide.sh

Das wird klappen.

 0
Author: Sridhar GV,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-11-23 11:57:56

Obwohl die vorhandenen Antworten hier zu der Zeit korrekt waren, enthält Windows 10 jetzt optional eine modifizierte Version von Ubuntu, auf der eine vollständige Bash-Shell ausgeführt wird.

Einmal ausführbar gemacht, können Skripte in der üblichen Weise aus bash ausgeführt werden, zB:

chmod +x myscript.sh
./myscript.sh

Wenn Sie ein Skript direkt von Windows aus ausführen möchten, können Sie eine Verknüpfung im selben Verzeichnis erstellen und das 'Ziel' auf Folgendes festlegen:

C:\Windows\System32\bash.exe -c "./myscript.sh"

Wenn der Pfad Ihres Skripts relativ zu die Position der Verknüpfung (wie im obigen Beispiel) stellt sicher, dass das Feld "Start in" ebenfalls leer ist.

 0
Author: Molomby,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-08-25 07:34:59