2016-10-01 198 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