2015-04-27 190 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