Skip to main content

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

Installation

Install using pip:

pip install bash

Usage

Run commands as you would in bash:

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

Chain commands for the same effect:

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

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

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

Access stdout and stderr attributes:

>>> b = bash('ls tests.py')
>>> b.stdout
'tests.py\n'
>>> b.stderr
''

Get the return code generated by a command:

>>> b = bash('ls tests.py')
>>> b
tests.py
>>> b.code
0

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

>>> b = bash('ls tests.py').value()
u'tests.py'

Motivation

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()

Warning

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:

https://github.com/alexcouper/bash

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 details)

Uploaded Source

File details

Details for the file bash-0.6.tar.gz.

File metadata

  • Download URL: bash-0.6.tar.gz
  • Upload date:
  • Size: 2.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for bash-0.6.tar.gz
Algorithm Hash digest
SHA256 2f79cb477d2763e6a24ca89314daef03b4cd899e02acec2635c95ea942736c68
MD5 d0c7584c830401e8451b30727ddaa4fb
BLAKE2b-256 42304870d449947581ff48f213c206d103e9458b0070dbc436c50b1b95007043

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.6 This release

1 file

0.5

1 file

0.4

1 file

0.3.1

1 file

0.3

1 file

0.2

1 file

0.1

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page