2016-10-01 153 views
0

我想运行一个脚本,然后执行一个基本的python脚本。 这是shell脚本:Shell脚本不执行python文件

#!usr/bin/bash 
mv ~/Desktop/source/movable.py ~/Desktop/dest 
cd ~/Desktop/dest 
pwd 
ls -lah 
chmod +x movable.py 
python movable.py 
echo "Just ran a python file from a shell script" 

这是python脚本:

#!usr/bin/python 
import os 
print("movable transfered to dest") 
os.system("pwd") 
os.system("mv ~/Desktop/dest/movable.py ~/Desktop/source") 
print("movable transfered to dest") 
os.system("cd ~/Desktop/source") 
os.system("pwd") 

Q1。 shell脚本不执行python文件。我究竟做错了什么? Q2。我需要在python脚本中写第一行#!usr/bin/python吗? 谢谢。

+0

第一行不是必需的,但只是建议,因此您应该小心。 –

+0

考虑到你调用脚本的方式(我认为),也不需要+ x的东西 –

+0

另外要注意:你在那里写入的'cd'命令将不起作用(在Python脚本中) –

回答

0

你缺少一个 '/' 的家当行:在使用os.system

#!usr/bin/python 

应该

#!/usr/bin/python 

我注意到另一件事是,你在呼唤CD。由于该命令将在子shell中执行,因此它不会更改调用脚本进程的当前目录。

+0

它本身是有效的,显然缺少的斜线并不是真的错过了:p。我看到目前的目录没有改变。我怎样才能做到这一点?此外,我试图从python文件:'os.system(“pid = $$”)' 'os.system(“echo'这是pid = $ pid'”)'但它不起作用。你能告诉我如何执行两个相关的语句,比如上面的语句。 – ashwinx