2016-05-24 12 views
2

Ich möchte ein Skript zum Aufruf phantomjs auf eine Reihe von Testskripten in einem Verzeichnis schreiben. Dieses Skript führt den ersten Test aus und wird dann beendet.Machen Phantomjs führen alle '* .js' Dateien im aktuellen Verzeichnis

#!/bin/bash 

find . -maxdepth 1 -name '*.js' -type f -exec phantomjs {} + 

Ausführen eines ähnlichen Befehl mit echo, wie

find . -maxdepth 1 -name '*.js' -type f -exec echo {} + 

druckt (wie erwartet) alle Dateinamen im Verzeichnis.

Wie kann ich Phantomjs machen alle .js Dateien im aktuellen Verzeichnis ausführen? Ist das ein Bash-Problem oder ein Phantomjs-Problem?

+1

Ist es wichtig, sofort einen einzigen 'phantomjs' Prozess für alle Dateien zu laufen? Wenn nicht, können Sie '+' durch '\;' ersetzen, um 'phantomjs' für jede Datei auszuführen. – janos

Antwort

3

AFAIK phantomjs unterstützt nur jeweils eine Datei. Sie müssen find sagen PhantomJS für jede gefundene Datei aufzurufen:

#!/bin/sh 
find . -maxdepth 1 -name '*.js' -type f -exec phantomjs {} ';' 

Sie können auch verwenden:

#!/bin/sh 
for file in *.js; do 
    [ -f "$file" ] || continue 
    phantomjs "$file" 
done 
Verwandte Themen