0

まず、ショーケースとして簡単な 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 固有のものですか、それとも私のシェル固有のものですか?

4

1 に答える 1