बस Executing BASH from Python पढ़ रहा था, फिर 17.1. subprocess — Subprocess management — Python v2.7.3 documentation, और मैंने executable
तर्क देखा; और यह काम करने लगता है:
$ python
Python 2.7.1+ (r271:86832, Sep 27 2012, 21:16:52)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> print os.popen("echo $0").read()
sh
>>> import subprocess
>>> print subprocess.call("echo $0", shell=True).read()
/bin/sh
>>> print subprocess.Popen("echo $0", stdout=subprocess.PIPE, shell=True).stdout.read()
/bin/sh
>>> print subprocess.Popen("echo $0", stdout=subprocess.PIPE, shell=True, executable="/bin/bash").stdout.read()
/bin/bash
>>> print subprocess.Popen("cat <(echo TEST)", stdout=subprocess.PIPE, shell=True).stdout.read()
/bin/sh: Syntax error: "(" unexpected
>>> print subprocess.Popen("cat <(echo TEST)", stdout=subprocess.PIPE, shell=True, executable="/bin/bash").stdout.read()
TEST
आशा इस कोई मदद करता है,
चीयर्स!
वास्तव में,/बिन/श (जो लगभग हमेशा बोर्न शेल का कुछ रूप है) लगभग हमेशा होता है जब कुछ भी * निक्स से संबंधित योग्यता के बिना "खोल" कहता है। यह भी ध्यान देने योग्य हो सकता है कि यदि आपको वास्तव में किसी विशिष्ट गैर-बोर्न शैल के नीचे कुछ स्निपेट निष्पादित करने की आवश्यकता है, तो आप फ़ंक्शन को अपने/tcsh sncet जैसे 't pathsh /c/tcsh -c "जैसे कुछ पास कर सकते हैं। –