web-dev-qa-db-ja.com

シェルスクリプトにTelnetまたはプログラムでコマンドを実行させる

FTPやOpenSSLなどのプログラムでTelnet接続したデバイスでコマンドを実行するシェルスクリプトを作成したいと考えています。私はすでにFTPで次のようなメソッドを見つけました。

#!/bin/sh
Host='0.0.0.0'
USER='User'
PASSWD='Pass'
FILE='~/Desktop/file.txt'
RFILE='file.txt'

ftp -n $Host <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
binary
passive
put $FILE $RFILE
quit
END_SCRIPT
exit 0

Telnetで接続したデバイスや別のプログラムで同様のことをするにはどうすればよいですか?

7
TheBro21

しばらく前に私は同様のものが必要でした。あなたはこのようなもので試すことができます:

#!/bin/sh

Host='0.0.0.0'
USER='User'
PASSWD='Pass'
CMD=''

(
echo open "$Host"
sleep 2
echo "$USER"
sleep 2
echo "$PASSWD"
sleep 2
echo "$CMD"
sleep 2
echo "exit"
) | telnet

PS1:私は衛星経由でアクセスしているので、「sleep 2」を使用します。 LANなら、「スリープ」はまったく必要ないかもしれません。

PS2:CMD変数に必要なものを入力するだけ

16
lester289