2013-12-11 31 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 
相关问题