まず、ショーケースとして簡単な Makefile を書きましょう。
#!/bin/make -f
folders := $(shell find -mindepth 1 -maxdepth 1 -type d -print)
make_dir:
@mkdir -p "test0"
pwd_test:
@cd "test0" && pwd
@pwd
pwd_all:
@for f in $(folders); do \
cd "$${f}" && pwd; \
pwd; \
cd ..; \
done
最初に実行しmake make_dir
てから、さまざまな結果を確認してください。
➜ so make pwd_test
/data/cache/tmp/so/test0
/data/cache/tmp/so
➜ so make pwd_all
/data/cache/tmp/so/test0
/data/cache/tmp/so/test0
for ループで を実行する必要があることがわかりますcd ..
。どうやら、コマンドの子プロセスのスポーンがなくなりましたcd X && pwd
が、通常はそうです。この動作は make 固有のものですか、それとも私のシェル固有のものですか?