如何使用shell脚本(和makefile?)执行python程序

e04*_*e04 5 python bash shell makefile

我已经阅读了大量的教程和stackex问题/答案,但显然我的问题太具体了,而且我的知识太局限于拼凑解决方案.

[编辑] 我的困惑主要是因为我的项目需要shell脚本和makefile来运行一个简单的python程序.我不确定为什么这是必要的,因为它似乎是如此迂回的做事方式.看起来makefile和脚本很可能只是为了让自动编程器满意,正如下面提到的受访者所说的那样.所以,我想这是最好用教授澄清的东西.我非常感谢答案 - 非常感谢您的帮助!

基本上,我想要做的是program.py通过program.sh(shell脚本)运行(我的源代码),这样当我在命令行中键入以下内容时

./program.sh arg1
Run Code Online (Sandbox Code Playgroud)

它运行program.py并传入arg1程序,就像我在命令行中手动输入以下内容一样

$ python program.py arg1
Run Code Online (Sandbox Code Playgroud)

我还需要自动设置program.sh为可执行文件,这样就$ chmod +x program.sh不必事先输入.

我已经阅读了这里提供的解决方案,这非常有用,但这似乎要求文件使用.py扩展名执行,而我的特定应用程序需要.sh扩展名,以便按照上面的要求运行.

关于我为什么要运行.sh文件的另一个原因是因为我还需要以某种方式包含一个makefile来运行程序以及脚本(所以我假设我必须make在脚本中包含一个命令? ).

老实说,我不确定为什么makefile是python程序所必需的,但是教授指示makefile对于分级脚本更方便,我们应该简单地为makefile的内容编写以下代码:

all:
   /bin/true
Run Code Online (Sandbox Code Playgroud)

非常感谢您提前帮助解决此事!

小智 4

您可以编写 shell 脚本来调用 python 脚本:

$ python your_program.py $1
Run Code Online (Sandbox Code Playgroud)

如果您只需要向 python 脚本传递一个参数,假设该参数中没有空格。

如果您需要 makefile,您可以让它使您的 shell 脚本可执行。

考虑到 makefile 是为了方便评分脚本,我怀疑您是否需要在脚本中添加对它的调用,但我会检查一下。评分脚本的作用可能是:

$ make
$ ./your_script.sh 
Run Code Online (Sandbox Code Playgroud)