Sponsored Content
Full Discussion: Expect script problem
Top Forums Shell Programming and Scripting Expect script problem Post 302185298 by jdyck on Monday 14th of April 2008 03:23:30 PM
Old 04-14-2008
Expect script problem

Hello all you scripting Gurus,

I have an expect script that gets called from an AppleScript Studio app that basically takes arguments for user name, password, and server address and then calls rsync. Everything works wonderfully, EXCEPT (there had to be one of those) if the user name starts with a t, such as "test_student", the t gets converted to a 'tab' and I instead get "[tab]est_student", which obviously won't authenticate properly.

In the following code, the problem happens at the end of the spawn line, the $login variable has the problem (although I haven't tested to see if $server and $password variables have the same problem).

I guess my question is if there is a way to make it so that expect just enters the text and doesn't try to do fancy [tabs] and such? Is there a best practice in a script like this to make sure that doesn't happen?

Thanks in advance for any help offered.

Jeff
--------

The script is as follows:

Code:
#!/usr/bin/expect --
#
# Student Backup Script
# 
# Purpose:      Based on provided login name, password and server, 
#				backup the user's Documents folder.
# Requires:     TCL and Expect extension
# Author:       Jeff Dyck
# Date:         12/18/2007
#
#               Usage format is ExpectBackup.sh username password server

# Bring in the variables...

set timeout 20

set localUser [exec whoami]
set login [lindex \\$argv 0]
set password [lindex \\$argv 1]
set server [lindex \\$argv 2]
set mode [lindex \\$argv 3]

# Begin syncronization...

spawn time rsync -a -z -E --exclude-from=/tmp/exclude.txt --progress --partial --timeout=30 -e ssh /Users/$localUser/Documents $login@$server:

expect {
       "(yes/no)?"  { send "yes\r"; exp_continue}
       "?assword:"  { send "$password\r"; exp_continue}
       }
       
# Wait for rsync to finish.
# expect eof

# Done.

exit 0

 

10 More Discussions You Might Find Interesting

1. AIX

Problem with expect.

Hi, I am facing a strange problem while executing a script from a solaris server. This script calls another one to execute "expect" commands on some other 40 servers (all AIX 5200). I am passing username and password to the "expect" script as arguments. My problem is that it is showing the... (4 Replies)
Discussion started by: gsabarinath
4 Replies

2. Shell Programming and Scripting

strange expect script behavior, or am i misunderstanding expect scripting?

Hello to all...this is my first post (so please go easy). :) I feel pretty solid at expect scripting, but I'm running into an issue that I'm not able to wrap my head around. I wrote a script that is a little advanced for logging into a remote Linux machine and changing text in a file using sed.... (2 Replies)
Discussion started by: v1k0d3n
2 Replies

3. Shell Programming and Scripting

Problem in expect script with password involving trailing backslash

Hi all, I have wriiten an expect script that genearates a public private key pair through ssh-keygen and then copies that key to the authorized keys file of the remote system . The problem i am facing is when i get a password for the remote machine containg a trailing backslash , the send command... (4 Replies)
Discussion started by: pradeeptyagi23
4 Replies

4. Shell Programming and Scripting

Need help with Expect script for Cisco IPS Sensors, Expect sleep and quoting

This Expect script provides expect with a list of IP addresses to Cisco IPS sensors and commands to configure Cisco IPS sensors. The user, password, IP addresses, prompt regex, etc. have been anonymized. In general this script will log into the sensors and send commands successfully but there are... (1 Reply)
Discussion started by: genewolfe
1 Replies

5. Shell Programming and Scripting

expect problem

hi all, guys i have a problem in this code... any help ? #!/usr/bin/expect if { $argc != 3 } { puts "Usage:" puts "$argv0 username oldpwd newpwd" exit } #set machine set username set oldpwd set newpwd set completed_list " " (2 Replies)
Discussion started by: b1sh0p
2 Replies

6. Shell Programming and Scripting

expect script problem

Hi, Have strange problem. When I run an expect script towards a switch, it will not work. $ ./test2 spawn ssh admin@sesafdd101 Password: Last login: Thu Dec 25 13:20:54 2008 from 172.20.96.14 ECN430/330/212 Linux, based on Wind River Linux glibc_small (standard) 2.0 Trying... (1 Reply)
Discussion started by: etxnreg
1 Replies

7. Programming

Calling expect script inside another expect

Hi, Am very new to expect scripting.. Can You please suggest me how to call an expect script inside another expect script.. I tried with spawn /usr/bin/ksh send "expect main.exp\r" expect $root_prompt and spawn /usr/bin/ksh send "main.exp\r" expect $root_prompt Both... (1 Reply)
Discussion started by: Priya Amaresh
1 Replies

8. Shell Programming and Scripting

Problem with expect script

expect { -re "(.*)NEXT PAGE(.*)" { send "\r\n" } exp_continue (0 Replies)
Discussion started by: sagar_1986
0 Replies

9. Programming

Calling another expect script inside an expect script

I have an expect script called remote that I want to call from inside my expect script called sudoers.push, here is the code that is causing me issues: set REMOTE "/root/scripts/remote" ... log_user 1 send_user "Executing remote script as $user...\n" send_user "Command to execute is: $REMOTE... (1 Reply)
Discussion started by: brettski
1 Replies

10. Programming

Expect script returning string following a found expect.

I'm fairly new to scripting so this might not be possible. I am using Expect with Cisco switches and need to capture the string after finding the expect request. For example, when I issue "show version" on a Nexus switch, I'm looking to capture the current firmware version: #show version ... (0 Replies)
Discussion started by: IBGaryA
0 Replies
NWVOLINFO(8)							     nwvolinfo							      NWVOLINFO(8)

NAME
nwvolinfo - Diplay info on NetWare Volumes SYNOPSIS
nwvolinfo [ -h ] [ -S server ] [ -U user name ] [ -P password | -n ] [ -C ] [ -v volume ] [ -N ] DESCRIPTION
nwvolinfo displays information on a NetWare Server Volume. nwvolinfo looks up the file $HOME/.nwclient to find a file server, a user name and possibly a password. See nwclient(5) for more informa- tion. Please note that the access permissions of $HOME/.nwclient MUST be 600 for security reasons. OPTIONS
-h -h is used to print out a short help text. -S server server is the name of the server you want to use. -U user user is the user name to use for login. -P password password is the password to use for login. If neither -n nor -P are given, and the user has no open connection to the server, nwvolinfo prompts for a password. -n -n should be given if no password is required for the login. -C By default, passwords are converted to uppercase before they are sent to the server, because most servers require this. You can turn off this conversion by -C. -v volume The volume name to be used. Defaults to 'SYS'. -N Display the information in numeric-only format for use in a pipe. AUTHORS
nwvolinfo was written by Jacek Stepniewski <cunio@gazeta.pl> based on utilities by Volker Lendecke. nwvolinfo 7/9/1996 NWVOLINFO(8)
All times are GMT -4. The time now is 11:36 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy