Experimental Python-based shell

Prasad, Ramit ramit.prasad at jpmorgan.com
Thu Oct 4 18:24:17 EDT 2012


(A little quoting manipulation to make it easier to read with
appropriate context.)

> > On Wed, Oct 3, 2012 at 11:25 AM, Amirouche Boubekki <amirouche.boubekki at gmail.com> wrote:
> >
> 2012/10/3 Jonathan Hayward <jonathan.hayward at pobox.com>
> > > The chief benefit besides the searching, so far, is that you can use Py3k mixed with shell commands as the
> > > scripting language--so script in Python instead of bash.
> > >
> > > When using Python for scripting, Python lines are indented by an extra tab (or four spaces) while shell-like
> > > commands are not indented. So:
> 
> > > cjsh>     for index in range(10):
> > > ----> echo %(index)d
> > > ---->
> > > 0
> > > 1
> > > 2
[snip]
> > 
> > > Echo could (and maybe should) be a built-in, but it isn't. The output is os.system()'ed to bash, which echoes
> > > based on a command that includes the value of a Python variable. The implementation is a bit crude, but it is
> > reasonably powerful.
> > > 
> > > I have other things on the agenda, like making it able to run scripts and doing fuzzy matching, but for now
> > > those are the main two attractions.
> > 

> > Is it possible to drop completly the bash syntax and use some python library (I saw it on github) that wraps
> > bash commands with python functions or the other around making it possible to call python functions with a bash-
> > like syntax. The syntax you are talking about seems strange.
> > 
> > Regards,
> > 
> > Amirouche

Jonathan Hayward wrote:
> I am open to suggestions and patches. I don't think the syntax strange, though: it offers a clear and distinct
> way to differentiate Python and shell commands, and shell commands can access Python variables when specified.
> And it is a simple rule, without footnotes needed.

I need more footnotes. :) Does every shell command not have indentation? 
How can you tell if the shell command is supposed to be in the loop or after
the loop?

    for index in range(10):
        # do something
echo %(index)d

Is the above equivalent to Python pseudo-code solution A or B?

Solution A,
for index in range(10):
    #do something
Popen('echo', file_path)

Solution B,
for index in range(10):
    #do something
    Popen('echo', file_path)

How do I make achieve the other solution?


This email is confidential and subject to important disclaimers and
conditions including on offers for the purchase or sale of
securities, accuracy and completeness of information, viruses,
confidentiality, legal privilege, and legal entity disclaimers,
available at http://www.jpmorgan.com/pages/disclosures/email.  



More information about the Python-list mailing list