[ET Trac] [Einstein Toolkit] #545: Use ssh ProxyCommand instead of multiple ssh commands
Einstein Toolkit
trac-noreply at einsteintoolkit.org
Sat Sep 3 04:12:19 CDT 2011
#545: Use ssh ProxyCommand instead of multiple ssh commands
--------------------------+-------------------------------------------------
Reporter: eschnett | Owner: eschnett
Type: enhancement | Status: review
Priority: major | Milestone:
Component: SimFactory | Version:
Resolution: | Keywords:
--------------------------+-------------------------------------------------
Comment (by hinder):
At the operating system level, new processes are started via execp (and
variants). A process receives a list of arguments which are C strings -
i.e. null-terminated. When launching a process from the shell, the user
has to be able to make a syntactic distinction between the content of the
argument and the separators indicating different arguments. So in
addition to the need to quote characters which would otherwise be
interpreted by the shell, there is also the need to group characters into
the appropriate arguments. This is done using double or single quotes so
that each shell "word" is passed to the process as a separate argument.
As such, it is certainly possible for one of the arguments to a process to
be an empty string.
For example (in Python for ease of use, but the same would apply to any
language):
#!/usr/bin/env python
import sys
print sys.argv
MacBook-2:~ $ ./test.py 1 2 "" 3
['./test.py', '1', '2', '', '3']
So I weigh in on the side of Erik and say that an empty string should be
quoted so that it remains an empty string when it is unquoted. This is
probably a special-case, but it's important to get QuoteSafe correct, as
quoting is a nightmare, and is made doubly so when it doesn't work
properly!
Questions:
* Is the quoting required dependent on which shell is being used?
* Is it possible to get the shell to quote a string itself?
* Is there a standard Python way to perform quoting? Answering my own
question, Stack Overflow has this to say on the matter:
http://stackoverflow.com/questions/967443/python-module-to-shellquote-
unshellquote. Maybe we could just use the snippet provided?
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/545#comment:6>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
More information about the Trac
mailing list