我有一個自定義的shell腳本,使從源頭Twitter的引導,然後將文件移動到我的Node.js應用程序的/ lib文件:從makefile調用shell腳本?
rm -r bootstrap
make bootstrap
mv -f bootstrap/css/* ../../lib/public/css
mv -f bootstrap/img/* ../../lib/public/img
mv -f bootstrap/js/* ../../lib/public/js
從殼體這只是正常使用./make_bootstrap.sh
現在我爲我的完整應用程序(主要編譯coffeescript和簡單的測試初始化)創建了一個Makefile,並且想要執行此自定義shell腳本來構建引導程序的命令。這裏是我的makefile
REPORTER = spec
all: build
build:
@./node_modules/coffee-script/bin/coffee \
-c \
-o lib src
bootstrap:
@./src/bootstrap \
./make_bootstrap.sh
clean:
rm -rf lib
mkdir lib
watch:
@./node_modules/coffee-script/bin/coffee \
-o lib \
-cw src
test:
@./node_modules/mocha/bin/mocha \
--reporter $(REPORTER) \
test/*.coffee
.PHONY: build bootstrap clean watch test
與相關的命令是'make bootstrap'。然而,當我運行命令行做引導我得到的是這樣的錯誤:
make: ./src/bootstrap: Permission denied
make: *** [bootstrap] Error 1
我原本以爲這是一個權限錯誤,但即使在設置文件(CHMOD 777)的結果沒有任何權限。此時我已給予完全權限的文件包括根Makefile,引導文件夾中的自定義shell腳本以及引導文件夾本身中的makefile。
什麼是'。/ src/bootstrap'?因爲你正試圖執行它,而不是你的腳本。 – Oktalist
您是否有權訪問該文件夾。您不僅需要文件權限,還需要讀取包含文件夾的權限。 – jsj
./src/bootstrap包含bootrstrap源碼的目錄?你爲什麼試圖執行一個目錄作爲命令?也許它應該是'cd src/bootstrap; 。/ make_bootstrap'。 – Barmar