wie bash script unter windows ausführen

speedy00

Well-known member
28 April 2006
548
24
Ich hab hier ein .sh und wie das google usw. ausspuckt sollte das doch möglich sein das auszuführen, unter Windows mit Xampp, oder?

Ich will jetzt mal nicht alle meine Vorgehensweisen posten (Angst vor auslachen) ;)
Aber wie währe denn die richtige vorgehensweise?
 
XAMPP hat da herzlich wenig damit zu tun (zumindest nicht, dass ich wüsste), da das ja ein Webserver mit PHP und MySQL is.

Wenn du n Bash-Script hast, solltest du auch ne Bash haben, die das interpretiert. Und die Frage, ob es eine Bash für Windows gibt... das is die Frage.
 
Ok, mag net ganz die Lösung dafür sein, aber wenns wirklich nur ein "einfaches" Shell Script ist gibts die standard Tools auch fürn Win.
Damit sind Sachen wie wget, zip, touch, tail, mkdir, cp, mv, grep, awk, sed usw. usw. abgedeckt ( --> https://unxutils.sourceforge.net/, https://en.wikipedia.org/wiki/UnxUtils ).

Damit wird aus nem .sh ruckzuck ne .bat

Aber warscheinlich wär es sinnvoller wenn man hier weiß was in dem Script eigentlich passieren soll.

fab
 
Schau dir mal cygwin an... da kommt auch bash mit. Musst vielleicht die Pfade ändern, sollte aber problemlos laufen.

@FAB so früh noch auf den Beinen? :roll:
 
XAMPP hat da herzlich wenig damit zu tun (zumindest nicht, dass ich wüsste), da das ja ein Webserver mit PHP und MySQL is.
Wenn du n Bash-Script hast, solltest du auch ne Bash haben, die das interpretiert. Und die Frage, ob es eine Bash für Windows gibt... das is die Frage.
Das mit Xampp hab ich erwähnt weil bei vielen Quellen die Rede von der php.exe war. ;)
Ok, mag net ganz die Lösung dafür sein, aber wenns wirklich nur ein "einfaches" Shell Script ist gibts die standard Tools auch fürn Win.
Damit sind Sachen wie wget, zip, touch, tail, mkdir, cp, mv, grep, awk, sed usw. usw. abgedeckt ( --> https://unxutils.sourceforge.net/, https://en.wikipedia.org/wiki/UnxUtils ).
Damit wird aus nem .sh ruckzuck ne .bat
Aber warscheinlich wär es sinnvoller wenn man hier weiß was in dem Script eigentlich passieren soll.
fab
Hier geht der Download leider nicht, und make währ das richtige für mich, oder?
Schau dir mal cygwin an... da kommt auch bash mit. Musst vielleicht die Pfade ändern, sollte aber problemlos laufen.
@FAB so früh noch auf den Beinen? :roll:
cygwin hab ich mir gestern auch noch runtergeladen, hab das damit nicht hinbekommen da mir ne Depp by Depp Anleitung gefehlt hat wo staht klick hier tipp das und nu das und jetzt haste es......oder auch nicht.
Das Script fängt so an
HTML:
#!/usr/bin/php5
<?
und danach kommt ganz normales php. Is ein Installationsscript das Dateien runterlädt, ne grafische Installation bereitstellt einen ein paar Einstellungen vornehmen lässt ein paar Dinge kompiliert und dann eigentlich fertig ist. :)

Der Download is nich das Problem, ich such nach wget und hab die Downloads, ich brauch aber die anderen Dinge die eben die (lange) php/sh macht.

Ich bliuck es echt nichtmehr...google gibt nicht allzuviel "für mich" her, Der eine behauptet das kannste im Browser ausführen ???? Der andere ne das machste über die Dos Konsole (soll sogar Rechtsklick "öffnen mit" gehen usw. usw.
Entweder bin ich zu doof oder es war zu spät heute n8.
Ich währ echt über ne step by step Anleitung froh-. :)

Hier der Link zu dem ganzen
https://stgcforum.de/wbb/index.php?page=Thread&threadID=25380
 
Achso, nix Bash, du brauchst nurn PHP-Interpreter.

Den findest du auf php.net. Du musst nur die erste Zeile raushauen, damit also alles in <?php ... ?> steht und dann kannst du das einfach mit
Code:
php scriptname.php
aufrufen.
 
Jupp. Aber wenn du nur ein Script ausführen willst und keine Datenbank oder HTTP-Server brauchst, reicht es, wenn du dir nur den PHP-Interpreter einzeln installierst.
 
achso, ja Xampp hab ich ja eh schon, brauch das ja auch.

Wenn ich nu die php.exe öffne dann kommt ein Dos Fenster in dem ich eingeben kann was ich will, da passiert nix....ansonsten bitte ne genauere Anleitung was ich machen soll.
 
Ich kenn ja dein Script ned, was es ausgibt.

Wie oben schon geschrieben, startest du es einfach mit
Code:
[LEFT]php scriptname.php[/LEFT]
 
[...]
Wenn ich nu die php.exe öffne dann kommt ein Dos Fenster in dem ich eingeben kann was ich will, da passiert nix....ansonsten bitte ne genauere Anleitung was ich machen soll.

Schau dir mal die Parameter an, die du an php.exe übergeben kannst:

Code:
D:\...\php>php.exe --help
Usage: php [options] [-f] <file> [--] [args...]
       php [options] -r <code> [--] [args...]
       php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...]
       php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...]
       php [options] -- [args...]
       php [options] -a

  -a               Run interactively
  -c <path>|<file> Look for php.ini file in this directory
  -n               No php.ini file will be used
  -d foo[=bar]     Define INI entry foo with value 'bar'
  -e               Generate extended information for debugger/profiler
  -f <file>        Parse and execute <file>.
  -h               This help
  -i               PHP information
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -r <code>        Run PHP <code> without using script tags <?..?>
  -B <begin_code>  Run PHP <begin_code> before processing input lines
  -R <code>        Run PHP <code> for every input line
  -F <file>        Parse and execute <file> for every input line
  -E <end_code>    Run PHP <end_code> after processing all input lines
  -H               Hide any passed arguments from external tools.
  -s               Display colour syntax highlighted source.
  -v               Version number
  -w               Display source with stripped comments and whitespace.
  -z <file>        Load Zend extension <file>.

  args...          Arguments passed to script. Use -- args when first argument
                   starts with - or script is read from stdin

  --ini            Show configuration file names

  --rf <name>      Show information about function <name>.
  --rc <name>      Show information about class <name>.
  --re <name>      Show information about extension <name>.
  --ri <name>      Show configuration for extension <name>.

Das heißt

Code:
php.exe -f test.php

führt dir test.php aus.
 
mach einfach...ja ne is klar, ihr macht das einfach.....ich nicht :ugly:

startest du es einfach mit
php scriptname.php

in der windows Konsole in der php.exe Konsole oder wo wie.... Ich sagte doch schon pls ne Step by Step weil ich gestern und heute soviel ausprobiert und gelesen hab das ich jetzt echt nicht mehr weiss wo mir der Kopf steht..... :ugly:

@hacker
Script hab ich oben verlinkt.
 
mach einfach...ja ne is klar, ihr macht das einfach.....ich nicht :ugly:
Ok, Schritt für Schritt - auch wenns nix bringt - s.u.:

  • Konsole starten (Win+R drücken, "cmd" eingeben (WinXP) / "command" eingeben (Win9x))
  • "php --help" eingeben
    • wenn der schon gepostete Hilfetext erscheint, gut, dann is der Pfad nämlich gesetzt
    • sonst "Befehl nicht gefunden":
      • mit "cd \installation_verzeichnis_von_php" ins Verzeichnis wechseln
  • Script starten mit "php script_name.php"
Jetzt, warum dir das nix bringt:
Dieses Script führt lauter exec()-Anweisungen mit Linux-Kommandos aus, d.h. rm, tar, wget, mv, chmod und find.

Du müsstest dich also an FAB's Post halten und erstmal versuchen, diese ganzen Kommandos bei Windows zum Laufen kriegen. Sonst startet das Ding zwar, gibt dir aber nur ne Latte von "Befehl nicht gefunden"-Zeilen aus.
 
Das Script wird wohl nicht im selben Verzeichnis wie der Interpreter sein, also musst du dann schreiben:
Code:
F:\xampp\php>php C:\Weiß\Der\Teufel\Wo\Das\Script\Is\install.sh
 
doch ich hab das mal da reingepackt is nu aber wieder draussen.
Der Befehl dauert keine 2 sek und dann zeigt er mir wieder
F:\xampp\php

Hier jetzt mal die install.sh
** siehe unten ** edit by theHacker