Bash help for telneting to AS400

Trying to automate a program that needs to be ran on our AS400. The script is fairly bland and simple, yet i cannot get it to work completely. It logs in just fine, but needs to run one step prior to calling the PGM. I've searched for other answers to this but i cant seem to get them to work correctly. The steps are as follows:

telnet as400
login
password
F3
CALL PGM(program)
SIGNOFF

The code I am using is below. This is my first question so I am not too sure what other information anyone would need. In my script i DID have variables used for $user and $pass but had issues logging in, so using (send "username") seemed to atleast get me logged into the system.

The script fails on the F3 command. I am not too familiar with the tput command. Are there other options? When the script fails to send a 'F3', it tries to send the CALL PGM instead and then it fails sending me back to my prompt.

Thanks in advance.
#!/bin/bash
/usr/bin/expect -  << END
spawn /usr/bin/telnet 192.168.100.1
expect "User*"
send "username"
send "\t"
send "pass"
send "\r"
sleep 5
exec tput kf3
send "CALL PGM(program)\n"
send "SIGNOFF\n"
expect eof
END

Open in new window

yanceyitAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

yanceyitAuthor Commented:
This how-to was found write after i posted my question. The TPUT command i got from google to place a F3 in the script was incorrect. Once I followed the following, the script worked fine. For anyone else having these issues:
 
1.	start od with the -c option 
2.	press the function key 
3.	press the return key 
4.	press ^D 
 
Here's what it looks like when I do that to find out what my F1 key generates:
 
    % od -c
    ^[[11~
    0000000 033   [   1   1   ~  \n
    0000006
    %
 
The string between the 0000000 and \n is what we want. You can translate that into a send command like this one:
 
    send "\033\[11~"

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Operating Systems

From novice to tech pro — start learning today.