Chris Angelico <ros...@gmail.com> wrote: > On Sat, May 31, 2014 at 7:42 AM, Devin Jeanpierre ><jeanpierr...@gmail.com> wrote: >> In unix shells you can literally use a new line. Or is that only bash? > > You can in bash, I know, but it's fiddly to type it; and more > importantly, it's not a good point in the "this is cleaner than a > series of pipes" argument. My primary recommendation, of course, was a > three-line script saved as an actual file, but for a more direct > parallel to the pipe-it-three-ways model, I wanted to use -c.
and you also wrote originally that it's fiddly to edit. I think that Windows Powershell has (at least in the current ISE command line) got the editing a bit better. It's a minor difference though and it has taken Microsoft about 30 years to get to that point. What may be a larger difference, or may just be my lack of Linux-foo, is this: PS C:\python33> $script = @" import os for root, dirs, files in os.walk("."): if len(dirs + files) == 1: print(root) "@ PS C:\python33> python -c $script .\Doc .\Lib\concurrent\__pycache__ .\Lib\curses\__pycache__ ... which is a style I've found useful for example when running a group of related timeit.py commands as I can put things like multi-line setup statements in a variable and then have a simpler command to repeat. But bash as far as I can won't let me do that: $ script='import os for root, dirs, files in os.walk("."): if len(dirs + files) == 1: print(root) ' $ python -c $script File "<string>", line 1 import ^ SyntaxError: invalid syntax -- Duncan Booth -- https://mail.python.org/mailman/listinfo/python-list