2016-07-22 3 views
0

Es folgt ein Bash-Skript run.command, die ich verwenden werde versuchen, ein PHP-Skript zu nennenPHP-Skript läuft nicht, wenn sie von Bash-Skript auf MAC OS X genannt

#!/bin/bash 
    #!/usr/bin/php 
    # Main script 

php -f generateTest.php 

Warum funktioniert das nicht laufen, wenn ich „double Klicken Sie auf "das Bash-Skript? Es läuft auf der terminal auf OS X Aufruf

ich die Fehlermeldung

asehgal-MacBook-Pro:~ asehgal$ /Users/asehgal/projects/configtest/run.command ; exit; 
Could not open input file: generateTest.php 
logout 
Saving session... 
...copying shared history... 
...saving history...truncating history files... 
...completed. 

I chmod +x verwendet haben, um es ausführbar zu machen.

+0

Ist 'generateTest.php' an der gleichen Stelle wie' run.command'? –

+0

>>>> ja ist es. – marc

Antwort

1

Verwenden Sie den absoluten Pfad zu Ihrer generateTest.php Datei und es sollte funktionieren, es jetzt nicht funktioniert, weil es versucht, generateTest.php in Ihrem aktuellen Arbeitsverzeichnis zu finden

(wo man run.command von laufenden) Beispiel:

#!/bin/bash 
#!/usr/bin/php 
# Main script 

php -f /Users/asehgal/projects/configtest/generateTest.php 
+0

eigentlich, ich war nur doppelklicken Sie darauf, und ich habe vergessen, dass beim Doppelklicken, ein neues Terminal-Fenster öffnet standardmäßig das Home-Verzeichnis. – marc

0
cd -- "$(dirname "$BASH_SOURCE")" 

Dies muss es nach der Shebang-Zeile sein. Das ist der Fall, wenn das Terminal geöffnet wird, um ein Bash-Skript auszuführen, wird standardmäßig das Ausgangsverzeichnis des aktuellen Benutzers verwendet. Daher müssen wir den Pfad zu dem Ordner ändern, von dem wir erwarten, dass er nicht mehr ausreicht.