make не может прочитать файл, написанный сам - PullRequest
0 голосов
/ 26 мая 2019

Makefile:

SHELL=/bin/bash
.PONY: stamp diff
.DEFAULT_GOAL := all

diff:
    diff <(./stamp.txt) <(docker-compose -f docker-compose.test.yml up)

stamp:
    docker-compose -f docker-compose.test.yml up > stamp.txt

all: stamp diff

Вывод:

$ make
docker-compose -f docker-compose.test.yml up > stamp.txt
Starting ci-test ... done
diff <(./stamp.txt) <(docker-compose -f docker-compose.test.yml up)
/bin/bash: ./stamp.txt: Permission denied
Starting ci-test ... done
0a1,4
> Attaching to ci-test
> ci-test    | Python 3.7.3
> ci-test exited with code 0
> 
\ No newline at end of file
Makefile:26: recipe for target 'diff' failed
make: *** [diff] Error 1

$ ll
total 32
drwxrwxr-x  4 mirror mirror 4096 May 26 07:38 ./
drwxrwxr-x 47 mirror mirror 4096 May 24 15:58 ../
-rw-rw-r--  1 mirror mirror  210 May 26 07:34 docker-compose.test.yml
-rw-rw-r--  1 mirror mirror  103 May 26 07:33 .env
drwxrwxr-x  9 mirror mirror 4096 May 26 07:36 .git/
drwxrwxr-x  3 mirror mirror 4096 May 24 03:29 .idea/
-rw-rw-r--  1 mirror mirror  664 May 26 07:38 Makefile
-rw-rw-r--  1 mirror mirror   92 May 26 07:36 stamp.txt

Вопросы.Почему я получил /bin/bash: ./stamp.txt: Permission denied и как это исправить?

1 Ответ

1 голос
/ 27 мая 2019

В вашем make-файле есть ошибка.Вот упрощенная версия

SHELL=/bin/bash
.PHONY: stamp diff
.DEFAULT_GOAL := all

diff:
        @diff <(./stamp.txt) <(echo "aaa")

stamp:
        @echo > stamp.txt

all: stamp diff

Эта строка: @diff <(./stamp.txt) <(echo "aaa") пропустит результат выполнения ./stamp.txt.Я думаю, что вы ищете, это

SHELL=/bin/bash
.PHONY: stamp diff
.DEFAULT_GOAL := all

diff:
        @diff <(cat ./stamp.txt) <(echo "aaa")

stamp:
        @echo > stamp.txt

all: stamp diff
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...