Re: run command via ssh - problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 04Nov2009 14:56, Dan Track <dan.track@xxxxxxxxx> wrote:
| On Wed, Nov 4, 2009 at 2:29 PM, Bryn M. Reeves <bmr@xxxxxxxxxx> wrote:
| >> for i in server1 server2;do ssh root@$i "DNSNAME=$(basename
| >> $(hostname)$);echo $DNSNAME";done
| >
| > You need to use single quotes instead of double quotes - see the rules
| > in the bash man page about quote expansion. A single quoted string is
| > not subject to any expansion by the shell on the client machine but a
| > double quoted string will be expanded on the client before the ssh
| > command is executed.
| >
| > $ ssh abox 'DNSNAME=$(basename $(hostname));echo $DNSNAME'
| > abox.example.com
| >
| > I still don't think that basename will do what you want here...
| 
| Great that single quote worked. It's nwo returning the correct result.
| Many thanks. The basename command works well.

I'm echoing from both Todd and Bryn's remarks about basename being useless
here (try replacing $(basename $(hostname)) with just $(hostname) and see the
script do exactly the sam thing).

However, I want to point out that because ssh hands its
arguments-joined-together-with-spaces to the shell at the far end,
you can do a lot of testing like this:

  sh -c 'some shell command...'

and when happy, run it remotely thus:

  ssh remote-host 'some shell command...'

Also, to see how it is looking while debugging, you can do this:

  ( set -x
    sh -c 'some shell command...'
  )

or on one line if you're command line editing:

  ( set -x; sh -c 'some shell command...' )

to see how the 'some shell command...' bit is prepared (since in your
real world example that's got double quotes and stuff), and you can also
go:

  sh -xc 'some shell command...'

to see exactly what the shell is doing with the string you're giving it.

All of this before throwing over the net with ssh.

Cheers,
-- 
Cameron Simpson <cs@xxxxxxxxxx> DoD#743
http://www.cskk.ezoshosting.com/cs/

No man should escape our universities without knowing how little he knows.
- J. Robert Oppenheimer

-- 
fedora-list mailing list
fedora-list@xxxxxxxxxx
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines
[Index of Archives]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [Fedora Magazine]     [Fedora News]     [Fedora Summer Coding]     [Fedora Laptop]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Maintainers]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Legacy]     [Fedora Desktop]     [Fedora Fonts]     [ATA RAID]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [SSH]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Centos]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Tux]     [Yosemite News]     [Gnome Users]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [Asterisk PBX]     [Fedora Sparc]     [Fedora Universal Network Connector]     [Libvirt Users]     [Fedora ARM]

  Powered by Linux