Bash + Python подпроцесс "объявить" - PullRequest
1 голос
/ 15 февраля 2012

возвращается следующий код: /bin/sh: declare: not found Любая помощь приветствуется.

PS. Передача ["объявлять", "- а"] или любой подобной комбинации также не работает.

#!/usr/bin/python
import subprocess

def dcl():
    proc = subprocess.Popen(["declare -a ids"], shell=True, stdout=subprocess.PIPE);
    proc_value = proc.communicate()[0];
    return proc_value

Хорошо, спасибо за помощь. Прохождение ["declare","-a","ids"] или ["declare","-a ids"] не помогло. Но по причине, которую я не понимаю, добавив:

executable = "/bin/bash"

решена проблема. Да, немного странно. Во всяком случае, оценили!

1 Ответ

1 голос
/ 15 февраля 2012

попробовать:

In process.py:

#!/usr/bin/python
import subprocess

def dcl():
    proc = subprocess.Popen(["declare", "-a ids"], shell=True, stdout=subprocess.PIPE)
    proc_value = proc.communicate()[0]
    return proc_value

print dcl()

Исполнение с примером вывода:

[avasal@avasal]# python process.py
BASH=/bin/sh    
BASH_ALIASES=()
BASH_ARGC=([0]="0")
BASH_ARGV=()
BASH_CMDS=()
BASH_EXECUTION_STRING=declare
BASH_LINENO=()
BASH_SOURCE=()
. # More data
. # More data
. # More data
. # Some More data
_=/usr/bin/python

[avasal@avasal]#
...