2016-05-24 8 views
2

Я хочу написать сценарий для вызова phantomjs на кучу тестовых скриптов в каталоге. Этот скрипт запускает первый тест, а затем завершает работу.Сделать phantomjs запускать все файлы * .js в текущем каталоге

#!/bin/bash 

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

Выполнение аналогичной команды с echo, как

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

отпечатков (как и ожидалось) всех имен файлов в каталоге.

Как я могу заставить phantomjs запускать все файлы .js в текущем каталоге? Является ли это проблемой bash или проблемой phantomjs?

+1

Важно для запуска одного 'процесса phantomjs' для всех файлов сразу? Если нет, вы можете заменить '+' на '\;' для запуска одного 'phantomjs' для каждого файла. – janos

ответ

3

AFAIK phantomjs будет поддерживать только один файл в то время. Вы должны сказать find позвонить phantomjs для каждого найденного файла:

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

Вы также можете использовать:

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