赋予我的python脚本权限的Makefile?

时间:2013-12-11 01:03:44

标签: python shell makefile

我有一个名为“myprogram.py”的python脚本和一个名为“myprogram”的shell脚本,用于运行此

# "myprogram"

#!/bin/sh
python myprogram.py

我创建了这个shell脚本,因为我想像这样运行我的程序:

./myprogram arg1 arg2

然而,当我这样做时,我得到了“Permission Denied”错误。

我知道我需要输入“chmod 755 myprogram”来授予权限,但我想这样做

在我的makefile中,而不是让用户手动输入chmod。

换句话说,我想要我的makefile以便输入

./make

运行“chmod 755 myprogram”

有办法做到这一点吗?我的makefile的内容应该是什么?

由于

2 个答案:

答案 0 :(得分:4)

尝试将这样的内容放入Makefile

all: myprogram
    chmod 755 myprogram

myprogram注册为all目标的依赖项。

请注意,第二行应该以硬标签字符开头,而不是空格,因为Makefile非常特别关于缩进。

关于shell脚本:有两种方法可以编写它。

python myprogram.py $1 $2

这会将脚本的前两个参数传递给python程序。

但是,如果你这样做

python myprogram.py $@

然后传递给shell脚本的所有参数都将传播到python程序。

答案 1 :(得分:0)

使用Make来做这件事是没有意义的。 Make不是为它而设计的。你应该自己发出命令chmod 755 myprogram和bedone。如果您愿意,可以将此命令封装在脚本或别名中,但不能在makefile中封装,然后您可以将myprogram输入到保留权限的您喜欢的版本控制系统中,这样如果您在其他位置重新创建它,权限已设置。制作不是这样做的方法。

但是如果你必须这样做(因为老板这样说),让all取决于myprogram是不正确的。 myprogram已存在且allmyprogram内容的更改或其修改时间无关。它应该是:

all:
    chmod 755 myprogram