从python文件运行sh,语法错误
我正在尝试从python文件运行sh脚本从python文件运行sh,语法错误,python,linux,sh,Python,Linux,Sh,我正在尝试从python文件运行sh脚本 import subprocess subprocess.call(["../my_script.sh"]) my_script.sh #!/usr/bin/python rm category.xml #!/usr/bin/sh rm category.xml python文件 import subprocess subprocess.call(["../my_script.sh"]) 我得到 File "../my_scrypt
import subprocess
subprocess.call(["../my_script.sh"])
my_script.sh
#!/usr/bin/python
rm category.xml
#!/usr/bin/sh
rm category.xml
python文件
import subprocess
subprocess.call(["../my_script.sh"])
我得到
File "../my_scrypt.sh", line 3
rm category.xml
^
SyntaxError: invalid syntax
如何修复此问题?您使用了一行
#/usr/bin/python
在一个非python的文件上。换一条蛇帮线
更好的是,当您可以调用Python函数执行相同的操作时,不要调用shell脚本:
import os
os.remove("category.xml")
你用了一行shebang的
#/usr/bin/python
在一个非python的文件上。换一条蛇帮线
更好的是,当您可以调用Python函数执行相同的操作时,不要调用shell脚本:
import os
os.remove("category.xml")
如果您使用的是python2x 使用命令模块:
import commands
print commands.getoutput('sh my_script.sh')
如果使用python3x
使用子流程模块:
import subprocess
print(subprocess.getoutput('sh my_script.sh'))
如果您使用的是python2x 使用命令模块:
import commands
print commands.getoutput('sh my_script.sh')
如果使用python3x
使用子流程模块:
import subprocess
print(subprocess.getoutput('sh my_script.sh'))
看看你的shell代码。您正在使用python解释器
#/usr/bin/python
并向其提供bash命令rm category.xml
固定shell脚本:
#!/bin/bash
rm category.xml
看看你的shell代码。您正在使用python解释器
#/usr/bin/python
并向其提供bash命令rm category.xml
固定shell脚本:
#!/bin/bash
rm category.xml
试试这个
my_script.sh
#!/usr/bin/python
rm category.xml
#!/usr/bin/sh
rm category.xml
琐碎的方法:
>>> import subprocess
>>> subprocess.call(['./my_script.sh'])
>>>
试试这个
my_script.sh
#!/usr/bin/python
rm category.xml
#!/usr/bin/sh
rm category.xml
琐碎的方法:
>>> import subprocess
>>> subprocess.call(['./my_script.sh'])
>>>
我有一个shebang行,我的_script.sh
#/usr/bin/python rm category.xml
Yes:这是错误的:您说的是用python运行该文件。这不是Python。我有一行shebang代码,我的_script.sh#/usr/bin/python rm category.xml
Yes:这是错误的:您说的是用python运行该文件。这不是Python.bash和sh的区别。但是,它必须是#/bin/sh
这取决于代码,我认为rm
只是用于测试。sh不支持bash的许多有用特性,但它是可移植的。就我而言,在现代linux系统上,我从来没有遇到过bash的任何问题,只从高级语法中受益。bash和sh有不同之处。但是,它必须是#/bin/sh
这取决于代码,我认为rm
只是用于测试。sh不支持bash的许多有用特性,但它是可移植的。就我而言,在现代linux系统上,bash从来没有遇到过任何问题,我只从高级语法中受益。子进程
从Python 2.4开始就可用,而命令
在Python 2.6中被弃用(老实说,我到现在为止从未听说过)。子进程
从Python 2.4开始就可用,在Python2.6中,commands
被弃用(老实说,直到现在我才听说过它)。