私のメイクファイルには次のターゲットがあります: (デタッチされたプロセスで python http サーバーを実行し、bash スクリプトが完了したらサーバーを強制終了したい)
TEST_PORT = 17777
test::
$(ENV_VARS) \
python -m SimpleHTTPServer $(TEST_PORT); \
PID=$$(lsof -t -i @localhost:$(TEST_PORT) -sTCP:listen); \
echo $(PID); \
if [ -n "$$PID" ]; \
then \
python test.py; \
fi; \
function finish { \
if [ -n "$$PID" ]; \
then \
kill -9 $$PID; \
fi \
} \
trap finish EXIT;
&
ただし、行の後に a を置くとpython ...
、エラーが発生します
/bin/dash: 構文エラー: ";" 予期しない
これはどのように適切な方法で行うことができますか?
編集
次のようにメイクファイルを変更しました。
test::
python -m SimpleHTTPServer $(TEST_PORT) &
PID=$$(lsof -t -i @localhost:$(TEST_PORT) -sTCP:listen); \
if [ -n "$$PID" ]; \
then \
$(ENV_VARS) python test.py; \
fi \
function finish { \
if [ -n "$$PID" ]; \
then \
kill -9 $$PID; \
fi \
} \
echo $$PID; \
trap finish EXIT;
ただし、エラーが発生します:(行番号なし)
/bin/dash: 構文エラー: 予期しない単語