Make phantomjs run all '*.js' files in the

2019-05-23 21:27发布

问题:

I want to write a script to call phantomjs on a bunch of test scripts in a directory. This script runs the first test and then exits.

#!/bin/bash

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

Executing a similar command with echo, like

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

prints (as expected) all the filenames in the directory.

How can I make phantomjs run all .js files in the current directory? Is this a bash problem or a phantomjs problem?

回答1:

AFAIK phantomjs will only support one file at the time. You need to tell find to call phantomjs for each found file:

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

You can also use:

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