[SGVLUG] Shell quoting

Rae Yip rae.yip at gmail.com
Mon Apr 19 10:00:19 PDT 2010


If you're using a scripting language, you should use the mysql library
for that language, unless you have good reasons for the shell-only
constraint. :)

-Rae.

On Mon, Apr 19, 2010 at 9:55 AM, Matt Campbell <dvdmatt at gmail.com> wrote:
> Ok, that left out a layer.
>
> The full correct command would be:
>
> system('ssh -l<user> <isp shell host> \'bash -c \\\'mysql -u<database user>
> <database name> -p <database password> -h <isp sql host> \\\\\\\'ALTER TABLE
> \\\\\\\`Layouts\\\\\\\` ORDER BY \\\\\\\`Date\\\\\\\`;\\\\\\\'\\\' 2\\>\\&1
> \' '
>
> Matt
>
>> -----Original Message-----
>> From: Matt Campbell [mailto:dvdmatt at gmail.com]
>> Sent: Monday, April 19, 2010 9:51 AM
>> To: DVDMatt Cambell; 'SGVLUG Discussion List.'
>> Subject: RE: [SGVLUG] Shell quoting
>>
>> Really sorry for all the typos, that's what I get for 2 hours of sleep.
>> ;)
>>
>> The correct command should have read:
>>
>> 'ssh -l<user> <isp shell host> \'mysql -u<database user> <database
>> name> -p <database password> -h <isp sql host> \\\'ALTER TABLE
>> \\\`Layouts\\\` ORDER BY \\\`Date\\\`;\\\'\' '
>>
>> Matt
>>
>> > -----Original Message-----
>> > From: Matt Campbell [mailto:dvdmatt at gmail.com]
>> > Sent: Monday, April 19, 2010 9:48 AM
>> > To: 'SGVLUG Discussion List.'
>> > Subject: RE: [SGVLUG] Shell quoting
>> >
>> > Hi Dan,
>> >
>> > Trying to run a SQL statement on my web server reqmotely.  The SQL
>> > engine is protected to localhost only so I have to ssh to the host to
>> > run the SQL.
>> >
>> > I am trying to write a generic execute function for future project.
>> I
>> > don't want to assume what the default shell is locally or remotely.
>> >
>> > The whole command that does not work is:
>> > 'ssh -l<user> \'<isp shell host> mysql -u<database user> <database
>> > name> -p <database password> -h <isp sql host> \\\'ALTER TABLE
>> > \\\`Layouts\\\` ORDER BY \\\`Date\\\`;\\\'\' '
>> >
>> > I have played with a couple dozen versions of quoting the quotes to
>> no
>> > avail.  I do not want to mix quotes (which works) as I need to be
>> able
>> > to programmatically quote all types of quotes in the arbitrary
>> command
>> > passed to this function.
>> >
>> > Thanks for looking at it!
>> >
>> > Matt
>> >
>> >
>> > > -----Original Message-----
>> > > From: sgvlug-bounces at sgvlug.net [mailto:sgvlug-bounces at sgvlug.net]
>> On
>> > > Behalf Of Dan Kegel
>> > > Sent: Monday, April 19, 2010 9:38 AM
>> > > To: SGVLUG Discussion List.
>> > > Subject: Re: [SGVLUG] Shell quoting
>> > >
>> > > On Mon, Apr 19, 2010 at 9:29 AM, Matt Campbell <dvdmatt at gmail.com>
>> > > wrote:
>> > > > Wow.  And I thought I knew my shell cold.
>> > > >
>> > > > Does anyone know the logic why this does not work?
>> > > >
>> > > >     matt at scar:166% bash -c 'echo \'ALTER TABLE\' '
>> > > >
>> > > >     Unmatched '.
>> > > >
>> > > > And how this is actually parsed?
>> > > >
>> > > >     matt at scar:144% bash -c echo 'ALTER TABLE `Components`'
>> > > >
>> > > >     (returns a blank line)
>> > >
>> > > What are you trying to do?  i.e. what do you want to appear in the
>> > > final output?
>> > > I guess you're generating a shell script that will generate SQL?
>> > >
>> > > - Dan
>
>


More information about the SGVLUG mailing list