Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash+;“Python子流程”;宣布;_Python_Bash_Subprocess_Popen - Fatal编程技术网

Bash+;“Python子流程”;宣布;

Bash+;“Python子流程”;宣布;,python,bash,subprocess,popen,Python,Bash,Subprocess,Popen,以下代码返回:/bin/sh:declare:notfound 非常感谢您的帮助 另外,传递[“declare”、“-a”]或任何此类组合也不起作用。 好的,谢谢你的帮助。 传递[“declare”、“-a”、“ids”]或[“declare”、“-a ids”]没有帮助。 但是,出于我不明白的原因,我补充道: executable = "/bin/bash" 解决了这个问题。是的,有点奇怪。无论如何,谢谢 试试看: In process.py: #!/usr/bin/python impo

以下代码返回:
/bin/sh:declare:notfound
非常感谢您的帮助

另外,传递[“declare”、“-a”]或任何此类组合也不起作用。
好的,谢谢你的帮助。 传递
[“declare”、“-a”、“ids”]
[“declare”、“-a ids”]
没有帮助。 但是,出于我不明白的原因,我补充道:

executable = "/bin/bash"
解决了这个问题。是的,有点奇怪。无论如何,谢谢

试试看:

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]#
尝试:

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]#

好的,谢谢你的帮助。传递[“declare”、“-a”、“ids”]或[“declare”、“-a ids”]没有帮助。但是,出于我不明白的原因,添加:executable=“/bin/bash”解决了这个问题。是的,有点奇怪。无论如何,谢谢!好的,谢谢你的帮助。传递[“declare”、“-a”、“ids”]或[“declare”、“-a ids”]没有帮助。但是,出于我不明白的原因,添加:executable=“/bin/bash”解决了这个问题。是的,有点奇怪。无论如何,谢谢<代码>子流程默认情况下使用
/bin/sh
。也许
declare
是特定于
bash的,这就是为什么需要使用
executable=“/bin/bash”
强制使用它。(我对
sh
不太熟悉,不知道
bash
的哪些部分是新的和特定的。)您必须向我解释一下“非常感谢您的帮助”是什么意思;)<代码>子流程默认情况下使用
/bin/sh
。也许
declare
是特定于
bash的,这就是为什么需要使用
executable=“/bin/bash”
强制使用它。(我对
sh
不太熟悉,不知道
bash
的哪些部分是新的和特定的。)您必须向我解释一下“非常感谢您的帮助”是什么意思;)