Skip to main content

Bash for Python

Project description

A library that enables easy running and concatenation of bash commands in python


Install using pip:

pip install bash


Run commands as you would in bash:

>>> from bash import bash
>>> bash('ls . | grep ".pyc"')

Chain commands for the same effect:

>>> bash('ls . ').bash('grep ".pyc"')

This becomes increasingly useful if you later need to reuse one such command:

>>> b = bash('ls . ')
>>> b.bash('grep ".pyc"')
>>> b.bash('grep ".py$')

Access stdout and stderr attributes:

>>> b = bash('ls')
>>> b.stdout
>>> b.stderr

Get the return code generated by a command:

>>> b = bash('ls')
>>> b
>>> b.code

To get a stripped, unicode string version of bash.stdout call value():

>>> b = bash('ls').value()


I found that I was often having to write the same lines of code to handle running bash commands from python.

This provides a pip-installable, tested shortcut to writing:

from subprocess import PIPE, Popen

p = Popen(cmd, shell=True, stdout=PIPE, stdin=PIPE, stderr=PIPE)
output, err = p.communicate()


Please note that this library uses shell=True under the hood. This means that this library is NOT suitable for running untrusted commands. (See explanation)

Running the tests

Simply use a test runner.

$ nosetests

Support + Contributing

Feel free to make pull requests, or report issues via the repo:

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bash-0.6.tar.gz (2.8 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page