convert string to list

Cliff Wells clifford.wells at
Wed Oct 13 17:39:54 CEST 2004

On Wed, 2004-10-13 at 16:49 +0200, Jochen Hub wrote:

> > #!/bin/bash
> > A B C
> The problem is that I want to pass one or two lists to the script, so it 
> should be able to distinguish between
> thescript ["A","B"] ["C","D",E"]
> thescript ["A","B","C"] ["D",E"]
> thescript ["A","B","C","D",E"]

Okay, after considering several alternatives, it occurs to me that,
depending upon the scope of this script, eval might not be a bad way to
go.  There are two main questions you have to ask yourself when deciding
if eval is safe:

1. Where will the arguments come from?  If you are hardwiring them into
the bash script (and the script is properly secured) then I don't think
there's a problem.  If they come from an untrusted source (network data,
etc), then you should by no means use eval.  

2. Is there any chance this script will be run suid?  I know Linux
doesn't allow suid scripts, but that doesn't prevent the script from
being run by a suid executable and thus gaining privileges.

If you feel secure about those two things, then I would say go ahead
with the eval-based solution, since it is clearly the simplest:

#!/bin/bash "['a', 'b', 'c']" "['d', 'e', 'f']"

import sys

arglist = []
for arg in sys.argv[1:]:

print arglist


Cliff Wells <clifford.wells at>

More information about the Python-list mailing list