我有一个名为“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的内容应该是什么?
由于
答案 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
已存在且all
与myprogram
内容的更改或其修改时间无关。它应该是:
all:
chmod 755 myprogram