Первая проблема, которую я вижу.
у вас есть команды
cd somewhere
do something
make создает новую оболочку для каждой строки. Таким образом, он создаст оболочку, изменит текущий рабочий каталог этой оболочки, закроет оболочку, создаст новую оболочку и что-то сделает. Это то, что вы хотите.
вам нужно сделать
cd somewhere; do something
т.е.
htmlproofer:
cd $(TEMP_DIR_HTMLPROOF); $(WGET) --recursive --html-extension --convert-links --domains localhost --no-parent localhost:8000 - $(HTMLPROOFER). ;echo $(TEMP_DIR_HTMLPROOF)
rm -r $(TEMP_DIR_HTMLPROOF)
примечание cd..
приведет к неправильному действию (в сценарии оболочки ),а здесь ничего не делает (см. выше ), и не нужно (см. выше ). В сценарии оболочки cd -
будет тем, что вы пытались сделать, хотя pushd и popd лучше.
Считайте это так, если у вас есть разрешения по умолчанию 666 означает, что у вас есть только r+w
для пользователя, группы и других, а по umask 541
вы хотите удалить разрешения r+x,r,x.
Для пользователя:
By default you can read+write and by umask you want to remove read+executable
permissions, but it will never happen because initially file has no executable
permissions. So only read permission will be removed.
Для группы:
read permission will removed
Для других:
There is no executable permission in the file, so there will be no change.
Та же концепция применяется к каталогам.
Обратите внимание, что umask — это не вычитание, а логическая операция И, основанная на umask.
Думайте о разрешениях в двоичном формате:
Таким образом, разрешение 0666 будет
110 110 110
Теперь umask 0541 будет
101 100 001
Для вычисления результатов мы отрицаем umask:
010 011 110
, а затем И то, что с разрешением.
Так
110 110 110 AND
010 011 110
=== === ===
010 010 110
И это отображается в -w--w -rw-