2015-04-27 240 views
3

我想運行一個簡單的Python腳本(name.py)一個bash文件中:運行python腳本用PHP

#!/usr/bin/env python 
name = raw_input('What is your name?\n') 
print 'Hi, %s.' % name 

具有以下bash腳本(Helloworld.sh):

#!/bin/bash 

python name.py 

通過下面的PHP

<!DOCTYPE html> 
<html> 

<body> 

<?php 
if (isset($_POST['Submit1'])) { 

echo shell_exec('sh /home/administrator/Desktop/Helloworld.sh'); 
} 

    ?> 
<form action="myfilename.php" method="post"> 
<p><Input Type = "Submit" Name ="Submit1" Value = "Save Parameters"> 

</form> 
</p> 

</body> 
</html> 

日誌中的錯誤是:

python:無法打開'name.py'文件:[Errno 2]沒有這樣的文件或目錄

bash文件從終端工作正常。我該怎麼辦?

+2

它在同一個目錄中嗎? – heinst

+0

Bash腳本添加了什麼值? – Biffen

+0

您可能想要放置完整合格的路徑。 –

回答

1

您可以修改shell腳本是這樣的:

#!/bin/bash 
BASEDIR=`dirname "${0}"` 
cd "$BASEDIR" 
python name.py 

總是被在包含腳本的目錄運行。或者如果name.py位於另一個目錄中,則相應地更改cd命令。

+0

Python和外殼紙條在桌面上,我已經改變了我的shell腳本:#!/斌/慶典 BASEDIR ='桌面「$ { 0}「' cd」$ BASEDIR「 python name.py ................................但沒有運氣 – Jack

+0

它是BASEDIR ='dirname「$ {0}」'不'BASEDIR =桌面「$ {0}」,'dirname'是一個命令,你不需要修改我的代碼,只需複製並粘貼 – Jahid

+0

它的工作原理,非常感謝:) – Jack

2

嘗試在bash的文件執行python腳本

cd "$(dirname "$0")" 

之前添加行?

+0

python和bash文件都在桌面上,所以我添加了cd「$(Desktop」$ 0「)」這是新的錯誤:/home/administrator/Desktop/Helloworld.sh:3:/ home/administrator/Desktop /Helloworld.sh:桌面:找不到 python:無法打開'name.py'文件:[Errno 2]沒有這樣的文件或目錄 – Jack

+1

不,只需添加'cd「$(dirname」$ 0「)」'don 「T改變'dirname'離開它 –

+0

謝謝你,它的工作原理 – Jack