Shell脚本:从一个shell脚本中执行一个python程序

我试着用Googlesearch答案,但没有运气。

我需要使用我的超级计算机服务器,但是为了运行我的python脚本,它必须通过shell脚本来执行。

例如,我想job.sh来执行python_script.py

这怎么能做到呢?

只要确保python可执行文件在您的PATH环境variables中,然后添加到脚本中即可

 python path/to/the/python_script.py 

细节:

  • 在文件job.sh中,把这个
 #!/bin/sh python python_script.py 
  • 执行这个命令使脚本可以运行: chmod u+x job.sh
  • 运行它: ./job.sh

方法1 – 创build一个shell脚本:

假设你有一个python文件hello.py创build一个名为job.sh的文件

 #!/bin/bash python hello.py 

用它标记可执行文件

 $ chmod +x job.sh 

然后运行它

 $ ./job.sh 

方法2(更好) – 使python本身从shell运行:

修改你的脚本hello.py并把它作为第一行

 #!/usr/bin/env python 

用它标记可执行文件

 $ chmod +x hello.py 

然后运行它

 $ ./hello.py 

Imho,写作

 python /path/to/script.py 

是非常错误的,特别是在这些日子里。 哪个python? python2.6的? 2.7? 3.0? 3.1? 大多数时候你需要在python文件的shebang标签中指定python版本。 我鼓励使用

  #!/ usr / bin / env python2#或python2.6或python3甚至python3.1 

为了兼容。

在这种情况下,让脚本可执行并直接调用它会更好:

 #!/斌/庆典

 /path/to/script.py

这样,你需要的python版本只能写入一个文件。 现在大部分的系统都在同时使用python2和python3,并且恰巧symlink python指向了python3 ,而大多数人希望它指向python2

你应该可以将其作为python scriptname.py来调用

例如

 # !/bin/bash python /home/user/scriptname.py 

还要确保脚本有权限运行

你可以通过使用chmod u + x scriptname.py来使其可执行

编辑:殴打它:-p

这最适合我:在脚本的顶部添加这个:

 #!c:/Python27/python.exe 

(C:\ Python27 \ python.exe是我机器上python.exe的path)然后通过以下方式运行脚本:

 chmod +x script-name.py && script-name.py 

这适用于我:

  1. 创build一个job.sh并添加命令来运行python脚本(你甚至可以添加命令行参数到该python,我通常预先定义我的命令行参数)。

    chmod + x job.sh

  2. 在job.sh里面添加下面的py文件,说:

    python_file.py argument1 argument2 argument3 >> testpy-output.txt && echo“python_file.py”

    python_file1.py argument1 argument2 argument3 >> testpy-output.txt && echo“用python_file1.py完成”

  3. job.sh的输出应该如下所示:用python_file.py完成python_file.py

  4. 我通常使用这个,当我必须运行不同的参数,预先定义的多个python文件。

注意:这里只是简单介绍一下这里发生的事情:

 python_file.py argument1 argument2 argument3 >> testpy-output.txt && echo "completed with python_file.py" . 

这里,shell脚本将运行python_file.py文件,并在运行时将多个命令行参数添加到python文件中。 这并不一定意味着,你也必须传递命令行参数。 你可以像这样使用它:python python_file.py,简单明了。 接下来, >>将打印并将这个.py文件的输出存储在testpy-output.txt文件中。

&&是一个逻辑运算符,只有在成功执行上述操作之后才能运行,并且在python_file.py中完成的可选显将在运行时回显给您的cli /terminal。