You aren't seeing the output from the 1st telnet session because the script is reading it instead of displaying it on the terminal. I was mistakenly expecting to see only PWR0 or PWR1 on the 1st (and only) line of output from telnet. Let's try a slight modification:
Code:
#!/bin/ksh
echo '*** Request amp status...'
{ sleep 2
echo '?p'
sleep 2
} | telnet 192.168.1.155 | while read power
do printf "%s\n" "$power"
if [ "$power" = "PWR1" ]
then echo '*** Amp power is on; send mute command...'
{ sleep 2
echo MZ
sleep 2
} | telnet 192.168.1.155
echo '*** Amp should be muted now.'
fi
done
This should let us see the output from both telnet sessions (assuming we do get a line from the 1st session that just contains "PWR1").
(I normally use ksh, but this script should also work with bash.)
Sorry I couldn't react earlier! I really like that you are helping me, but I've been busy last night so I couldnt try it any sooner(wife nagging ) .
I've tried you script and adjusted some tiny bits. Strange thing is that the pioneer amp gives a answer on the ?p question with PWR0, instead of 1... which you would expect. Anyway, I've tried your script it gave me this:
Code:
pi@domoticzpi ~ $ . /home/pi/domoticz/scripts/bash/versterkeruit1.sh
*** Request amp status...
Trying 192.168.1.155...
Connected to 192.168.1.155.
Escape character is '^]'.
BridgeCo AG Telnet server
PWR0
Connection closed by foreign host.
So there is something happing! but I it wont go any further. When I look at the telnet session closely it does not only give me the PWR0 answer sometimes, but sometimes a line with numbers. I guess this happens when something changes inside the amp. some sort of feedback. Then again, the script does not go any further so maybe this is not the problem.
I found a site which describes some kind of scripts which stores the output. I don't know if we can use this?
(im not allowed to post URL yet... so put the www infront
perceptiveautomation.com/userforum/viewtopic.php?f=11&t=6909&sid=0e816ef6a8c75d478492a4576b5c200d&start=15
Hi,
How to write a script to perform telnet/ftp operation.
Also please refer some site to get reference about shell scripting.
Thanks in advance
-Arun. (1 Reply)
I am trying to use telnet in shell script but getting following error
error
Connected to crmapp00.agf.ca.
Escape character is '^]'.
Connection closed by foreign host.
Script
#!/bin/ksh
PATH=/usr/sbin/:/usr/bin:/usr/ucb:/etc:/usr/local/bin:.
telnet HOSTNAME <<SCRIPT
user userid... (9 Replies)
Hi All,
I was trying to use telnet in a script to access a certain processor on a certain port to view some processes. The problem is that when I use telnet the output is displayed for me.
The script is:
#!/bin/sh
cd /ahmed/ezzat/
rm ss7trace.log
touch ss7trace.log
chmod 755... (3 Replies)
Hi Guys,
How do I write the script for the following
telnet 192.168.1.100 9002
if the result is less than 1 second. The script should say as port open
if the result takes more than 3 seconds. The script should display as port closed.
Thanks,
Charan (1 Reply)
Hi all,
I would like to write a ad hoc shell script that would allow me to do some telnet tests to multiple IP's and ports at the same time . So, I want to determine which one is successful and which one fails. So, basically I would like the shell to spawn the telnet test and to break out of... (3 Replies)
Hi,
I need a script that take one parameter as destination hostname and two parameter as ranges and tries telnet and records the successful connections.
fo reg:
./testtelnet.sh destination-host 1000 1050
should give me all the port between 1000 and 1050 what successfully connected to... (10 Replies)
Hello,
I wrote a script for doing telnet.However the requirement got changed and now I have to write a telnet script that will
1. Do the telnet from all the virtual ips in a box(Ex: x.x.x.x is the box ip, and x.x.x.1,x.x.x.2 etc are virtual ips associated with that box.)
2. The port range... (0 Replies)
Hello,
I wrote a script for doing telnet.However the requirement got changed and now I have to write a telnet script that will
1. Do the telnet from all the virtual ips in a box(Ex: x.x.x.x is the box ip, and x.x.x.1,x.x.x.2 etc are virtual ips associated with that box.)
2. The port range... (3 Replies)
Discussion started by: coolkid
3 Replies
LEARN ABOUT OSX
regexp::common::uri::telnet
Regexp::Common::URI::telnet(3) User Contributed Perl Documentation Regexp::Common::URI::telnet(3)NAME
Regexp::Common::URI::telnet -- Returns a pattern for telnet URIs.
SYNOPSIS
use Regexp::Common qw /URI/;
while (<>) {
/$RE{URI}{telnet}/ and print "Contains a telnet URI.
";
}
DESCRIPTION
$RE{URI}{telnet}
Returns a pattern that matches telnet URIs, as defined by RFC 1738. Telnet URIs have the form:
"telnet:" "//" [ user [ ":" password ] "@" ] host [ ":" port ] [ "/" ]
Under "{-keep}", the following are returned:
$1 The complete URI.
$2 The scheme.
$3 The username:password combo, or just the username if there is no password.
$4 The username, if given.
$5 The password, if given.
$6 The host:port combo, or just the host if there's no port.
$7 The host.
$8 The port, if given.
$9 The trailing slash, if any.
REFERENCES
[RFC 1738]
Berners-Lee, Tim, Masinter, L., McCahill, M.: Uniform Resource Locators (URL). December 1994.
SEE ALSO
Regexp::Common::URI for other supported URIs.
AUTHOR
Damian Conway (damian@conway.org)
MAINTAINANCE
This package is maintained by Abigail (regexp-common@abigail.be).
BUGS AND IRRITATIONS
Bound to be plenty.
LICENSE and COPYRIGHT
This software is Copyright (c) 2001 - 2009, Damian Conway and Abigail.
This module is free software, and maybe used under any of the following licenses:
1) The Perl Artistic License. See the file COPYRIGHT.AL.
2) The Perl Artistic License 2.0. See the file COPYRIGHT.AL2.
3) The BSD Licence. See the file COPYRIGHT.BSD.
4) The MIT Licence. See the file COPYRIGHT.MIT.
perl v5.16.2 2010-02-23 Regexp::Common::URI::telnet(3)