

シェル内で、ENTERキーを押した時の動作をしたいと思います。
具体的には、もともと「telnetする、接続→ある値を入力する→ENTERを押す→入力した値に合わせたテキストが出力される→connection終了」という処理があり、
これを自動化して、出力されたテキストをファイルに保存するためのシェルを作りたいのです。
作ってみたところ、1点だけできないのがENTERキーを押す部分です。
シェルを実行すると、値の入力まで行われた状態で終わってしまいます。
そこで手動でENTERを押せば、正常に処理が終了します。
おそらく、会話形式でENTERを押した時の処理がうまくかけていないと思っています。
echo -e "\r\n"などいろいろ試したのですが・・・
echoではないのではないかと推測していますが、行き詰まりました。
どのようにしたらよいのかご教授ください。
No.1ベストアンサー
- 回答日時:
echo "
"
でいいんじゃないでしょうか。ちょっとやりたいことが正確には理解できていないかもしれませんが。
文法的にまちがって見えても、本当に改行してしまうところがミソです。
この回答への補足
回答ありがとうございます。
説明を抽象的にしてしまったために、わかりづらくすみません。
echo"
"
で、改行はできました。
ただ、改行しただけで、思ったとおりの動き(ENTERを押した時と同じような動き)はしませんでした。
すなわち、
echo -e "\r\n"
の時と同じ動きです。
どうやら、改行コードを送り込むだけではだめみたいです。
せっかく回答いただいたのに、すみません。
自己解決しましたので、今後困った方がネット検索された場合を考慮して、ご報告します。
「会話形式でのエンターキーの動作」という質問の回答というより、
『「telnetする、接続→ある値を入力する→ENTERを押す→入力した値に合わせたテキストが出力される→connection終了」という処理があり、
これを自動化して、出力されたテキストをファイルに保存するためのシェルを作りたい』という質問の回答となります。
結果としては、
(echo '****';sleep 5;echo 'exit') | telnet 192.168.XXX.XXX
という形でうまくいきました(****は、入力した値)。
##ちなみに、出力された値をテキストに保存したい場合(lsした結果など)は、
##(echo '****';sleep 5;echo 'exit') | telnet 192.168.XXX.XXX > 吐き出し先ファイル名
##でできました。
エコーを前に書いてパイプで繋ぐという発想がなかったのですが、
おそらく、最初に****をエコーして、sleep 5をしている間にtelnet接続され、exitが実行されたタイミングで****+エンターキーと同じ動作が行われている様子です。
参考URLはこちらです。
http://his.luky.org/ML/linux-users.a/msg00827.html
>Quuxさん、説明が抽象的でわかりづらく、すみませんでした。ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Cシェル内でBシェルの様な関数...
-
csh (tcsh)での環境変数の長さ...
-
違いについて
-
ps -aのセッションリーダとは
-
.cshrc ファイルについて
-
ubuntuの端末の左にカレントデ...
-
Cシェルでのファイルからの入...
-
.bash_profile .profile ログイ...
-
Dirコマンドでフォルダ内ファイ...
-
スクリプトのエラー「unexpecte...
-
net use /d の強制実行
-
pingは正常なのにtracerouteで...
-
空きIPアドレスを探す方法
-
UNIX コマンドにおける # や円...
-
ファイル名についている「-」と...
-
ラズパイで『’test.service’をs...
-
SONYの音楽ソフト「x-アプリ」...
-
bashでシングルクォート内の変...
-
Linux環境 grepで改行コード(CR...
-
テキストファイルから最終行の抽出
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
シェル 会話形式でエンターキ...
-
ubuntuの端末の左にカレントデ...
-
export と set は違うの?
-
Cシェル内でBシェルの様な関数...
-
.cshrc ファイルについて
-
シェル(ksh)で変数にある文字列...
-
コマンドプロンプトとかで、net...
-
シェルを元に戻したい
-
solarisのsetenvが無効
-
lsコマンド部分一致方法
-
バックスラッシュの意味がわか...
-
WindowsXPについて
-
kshについて
-
シェルスクリプトの切り替え?
-
unix初心者です
-
apache停止してたら再起動させ...
-
UNIX(hp-ux)のコマンド履歴↑↓
-
シェルの編集の仕方について
-
telnetの制限
-
コンソールでの上下左右矢印ボ...
おすすめ情報