2013-12-11 37 views
1

我有一個python腳本名爲「myprogram.py」並命名爲「myprogram」運行該Makefile允許我的python腳本?

# "myprogram" 

#!/bin/sh 
python myprogram.py 

一個shell腳本,我創造了這個shell腳本,因爲我想這樣的運行我的程序:

./myprogram arg1 arg2 

但是,當我這樣做,我得到這個「權限被拒絕」的錯誤。

我知道我需要鍵入「搭配chmod 755 myprogram」准予許可的,但我想在我的makefile做到這一點

而不是讓用戶手動敲入chmod的。

換句話說,我希望我的makefile,使打字

./make 

運行「文件模式755 myprogram」

有沒有辦法做到這一點?我的makefile的內容應該是什麼?

感謝

+0

如果您使用附加腳本的唯一原因是以這種方式運行,您可能還想考慮添加'#!/usr/bin/env python'放在'.py'文件的頂部,並簡單地將它作爲'./myprogram.py'運行(設置x權限後)。 –

回答

3

嘗試把這樣的事情到Makefile

all: myprogram 
    chmod 755 myprogram 

,其登記myprogram作爲一個依賴於all目標。

請注意,第二行應該以硬tab字符開頭,而不是空格,因爲Makefiles非常關注縮進。

關於shell腳本:有兩種寫法。

python myprogram.py $1 $2 

這會將前兩個參數傳遞給腳本直到python程序。

但是,如果你這樣做

python myprogram.py [email protected] 

然後傳遞到shell腳本的所有參數將通過對Python程序傳播。

+0

打字「./make」給了我一個權限拒絕錯誤的makefile文件本身.. – user2492270

+0

嘗試運行'make'而不是'./ make' – AVP

+0

嗯..由於某種原因它說「***沒有指定目標,並且沒有找到makefile,停止。「 – user2492270

0

使用Make來做這件事毫無意義。 Make不是爲它設計的。你應該自己發佈命令chmod 755 myprogram和bedone。這個命令可以封裝在一個腳本或別名中,如果你喜歡,但不是在一個makefile中,你可以在你喜歡的版本控制系統中輸入myprogram,這樣可以保留權限,所以如果你在其他地方重新創建權限,就可以設置權限。 Make不是這樣做的方式。

如果你必須這樣做(因爲老闆說這樣),all取決於myprogram將是不正確的。 myprogram已經存在並且allmyprogram的內容或其修改時間的改變無關。它應該是:

all: 
    chmod 755 myprogram 
相關問題