Solved

Bash help for telneting to AS400

Posted on 2009-07-14
1
870 Views
Last Modified: 2013-12-06
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

0
Comment
Question by:yanceyit
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
1 Comment
 

Accepted Solution

by:
yanceyit earned 0 total points
ID: 24852300
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

Featured Post

Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The purpose of this article is to fix the unknown display problem in Linux Mint operating system. After installing the OS if you see Display monitor is not recognized then we can install "MESA" utilities to fix this problem or we can install additio…
I use more than 1 computer in my office for various reasons. Multiple keyboards and mice take up more than just extra space, they make working a little more complicated. Using one mouse and keyboard for all of my computers makes life easier. This co…
This is used to tweak the memory usage for your computer, it is used for servers more so than workstations but just be careful editing registry settings as it may cause irreversible results. I hold no responsibility for anything you do to the regist…
Hi friends,  in this video  I'll show you how new windows 10 user can learn the using of windows 10. Thank you.

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question