質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

2回答

2312閲覧

screenの操作をexpectでしたい。

rgbgy

総合スコア11

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

1クリップ

投稿2018/02/05 00:42

編集2018/02/05 00:44

screenをexpectで操作したいです。
具体的には新しいウィンドウを開いてssh後、rootになる、という部分を自動化したいです。

新しいウィンドウを開くのは出来る
(sshコマンド投入時に自動で開いたりなど)
のですが、そもそのウインドウへの切り替えが出来ませんでした。

ctrl+t(コマンド文字) ctrl+c
を入力したいのですが、autoexpectで作ったり、スクリプトを書いたり(ちゃんとctrl+v ctrl+tといった感じで入力してます)しても出来ませんでした。

何かいい方法は無いでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

一時的に.bashrcの最後に行を追加してそこからexpectを呼び出して、みたいな感じくらいしか無いような気がします。

Bash

1cp -p ~/.bashrc ~/.bashrc-backup 2echo >> ~/.bashrc exec my-expect-script 3screen -X screen 4sleep 1 5cp -p ~/.bashrc-backup ~/.bashrc

投稿2018/02/05 14:07

otn

総合スコア84491

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

まだ解決はしてませんが……
まず前提として、screenを使うと新規でシェルを立ち上げてしまうので、実現は難しそう。

なのでexpectを使わず、
予めscreenのセッションを一つ作っておき

screen -S session -X screen
screen -S session -X stuff "uname^M"

とstuffでしこしこ標準入力する事で、シェル化が可能。
だけどレスポンスの確認が出来ないから、失敗しても問答無用で入力していくので、イレギュラーに弱い。

どなたか解決法があれば。

参考url
https://qiita.com/twitte_raru/items/9e360a95c63060c95749

投稿2018/02/05 13:53

rgbgy

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問