2つのPhantomJSタスクを実行するためのBashファイルを作成しています。Bashコマンドはwhileループで1回だけ実行されます
外部JSファイルには、task1.js & task2.jsという2つのタスクがあります。
ここに私のbashスクリプトは、これまでのところです:タスク2は、一度だけ実行されているいくつかの未知の理由
#!/bin/bash
url=$1
cd $(cd $(dirname ${BASH_SOURCE}); pwd -P)
dir=../temp
mkdir -p $dir
file=$dir/file.txt
phantomjs "taks1.js" $url > $file
while IFS="" read -r line || [[ -n $line ]]; do
dir=../build
file=$dir/$line.html
mkdir -p $(dirname $file)
phantomjs "task2.js" $url $line > $file
done < $file
、スクリプトは停止します。
PhantomJSコマンドを削除すると、ファイルからすべての行が読み込まれるまで、whileループが正常に実行されます。
多分誰かがそれを知っていますか?
乾杯。
'phantomjs'ラインに置く' <は/ dev/null'なので。 –
ところで、http://shellcheck.net/であなたのコードを実行してください - それはバグなどを引用しています。 –
Julius:* task2.jsはstdinから読み込みますか? @Charlesが彼のコメントで示唆するように、それはphantomjsスクリプトにとって奇妙な振る舞いのように思えるかもしれませんが、何が起こっているのかを説明することもできます。 – rici