67715


以下で示すように、telnet接続をしてGETリクエストを送り、`abc.html` を取得するシェルスクリプトを作成しました。

この時、enterの部分はこのままだと”enter”と表記されるだけですが、実際のコマンドでは、ここはenterキーを押しています。  
しかしシェルスクリプトでここをenterと記載しても勿論うまくいきませんし、改行コードのLFを入れても改行されるだけでenterキーを押したものと同じにはなりませんでした。  
更に、echo""と入れてもうまくいきませんでした。echo "/n"も駄目でした。

どなたかenterキーを押したのと同じ様にするにはどのようにすればいいか教えていただけませんでしょうか。

**現状のシェルスクリプト**

[code]

    #!/bin/bash
    
    echo "open x.x.x.x 80"
    sleep 2
    echo "GET /abc.html HTTP/1.1"
    echo "HOST: x.x.x.x"
    echo "conection: keep-Alive"
    echo "enter"
    sleep 2
    
[/code]

コメント回答  
echo -e "\n"と入れても、改行されるだけで、enterキーと同じ入力とはなりませんでした。  
echo -e \nとしてみてもecho -e "\r"としても同様に改行がされるだけでした。  
何が間違っておりますでしょうか。


CC BY-SA 4.0
2020-06-15T09:23:08.380
67682
2020-06-20T01:50:39.307
2020-06-16T00:40:27.727
31472
31472
question
centos shellscript
シェルスクリプトのエンター入力の記述方法について


echoコマンドに「-e」オプション(バックスラッシュによるエスケープを有効にする)を指定した上で「\n」を指定します。

[code]

    $ echo -e "\n"
    
[/code]


CC BY-SA 4.0
2020-06-15T12:13:54.377
67690
2020-06-15T12:13:54.377
30745
67682
answer

[code]

    echo "" #で一回改行
    echo -e "\n" #で二回改行
    
[/code]

だと思うんですけど。  
いっそ

[code]

    yes ""
    
[/code]

でめっちゃ改行してみます？


CC BY-SA 4.0
2020-06-16T07:52:58.360
67715
2020-06-16T07:52:58.360
17106
67682
answer


キーボードのEnterを押すのを自動化したいということでしょうか？  
でしたら

[code]

    xdotool key Return
    
[/code]

で実行できます。  
正常に動作しない場合は前後に`sleep`で遅延を入れるといいかもしれません。


CC BY-SA 4.0
2020-06-20T01:50:39.307
67817
2020-06-20T01:50:39.307
40737
67682
answer