On Sat, Nov 28, 2009 at 19:04, Steven W. Orr <[email protected]> wrote:
> On 11/28/09 19:13, quoth Donald Russell: > > > > > > On Sat, Nov 28, 2009 at 15:47, Steven W. Orr <[email protected] > > <mailto:[email protected]>> wrote: > > > > On 11/28/09 02:43, quoth Donald Russell: > > > I am trying to use the expect program to automate an sftp > process.... > > > > > > The expect file begins with > > > > > > spawn sftp -oProxyCommand='....' u...@host > > > expect "password:" > > > send "sesame\n" > > > expect "sftp> " > > > > Try this: > > > > send "sesame\r" > > > > > > I'll try that, but I'm not hopeful. > > > > The command that is spawned fails... I get the "usage" as if all that > > was spawned was "sftp" and not the entire command. So it doesn't even > > get to the "expect password" part, regardless of whether I'm using \n or > > \r in the "send". > > > > And I gather there is no such character on the "spawn" line... the > > command is just taken to be the literal characters up to the end-of-line. > > Do I need to escape anything? As I mentioned, if I cut/past the command > > into a shell.. it works fine... it's just got being spawned properly by > > expect. (Or I'm doing something wrong :-( ) > > > > Ok. One last suggestion. It sounds like you might have a quoting problem. > > > eval spawn "sftp -oProxyCommand='....' u...@host" > > I'm assuming that you are using the single quotes to contain an argument > that > may have possible embedded white space. In case there is no white space, > it'll > probably also work without the single quotes. By default spawn will echo > what > it's doing. You can stop that via the -noecho option. > > Don't forget that expect is not a language of its own. It's just an > extension > to the tcl language. tcl is what provides the eval. ;-) > > Yes, I used single quotes because the -oProxyCommand= string contains spaces. So, I removed the quotes, and escaped the spaces... works fine now. Lessons learned: "spawn" doesn't handle quoted strings properly. Oddly enough, when spawn was echoing the command with the signle quotes and spaces, the echoed command was correct... I could cut/paste it into a shell unmodified and it worked. So, yes, there's something in the way spawn actually spawns the command. Anyway, it's working now and I can move forward. :-) Cheers
-- fedora-list mailing list [email protected] To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines
