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 
这适用于我:
- 
创build一个job.sh并添加命令来运行python脚本(你甚至可以添加命令行参数到该python,我通常预先定义我的命令行参数)。
chmod + x job.sh
 - 
在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完成”
 - 
job.sh的输出应该如下所示:用python_file.py完成python_file.py
 - 我通常使用这个,当我必须运行不同的参数,预先定义的多个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。