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

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

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

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Linux

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

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

Q&A

解決済

2回答

7833閲覧

shellスクリプトで、リモートの吐き出した結果をローカルの変数に入れたい

kinpirans

総合スコア16

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Linux

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

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

0グッド

0クリップ

投稿2015/06/10 09:27

今現在shellスクリプトにトライしているのですが、
sshでリモートに接続し、その結果をlocalの変数に代入する事は可能でしょうか?
何か良い方法があればご教授頂きたいです><

やりたい事の雰囲気

lang

1HENSU = `ssh webapp@xxxxxxx "cd /home/webapp/client&&git for-each-ref --sort=-committerdate | grep -m1 tag"`

これで代入できるかと思ったのですが、うまく行かないので、
現在下記の様に、一旦別のファイルに書き出して、それをtailした結果を変数に代入する様にしています。

lang

1`ssh webapp@xxxxxxx "cd /home/webapp/client&&git for-each-ref --sort=-committerdate | grep -m1 tag"` > tag.text 2HENSU = `tail -1 tag.text ` 3echo $HENSU

ただ、このやり方は気持ち悪いので、直接変数代入ができれば理想的です。

ちなみにもっと詳しく言うと、現在下記の様なやり方で、ssh接続しています。

lang

1OPTIONS='-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' 2run_ssh() { 3 /usr/bin/ssh ${HOST} ${OPTIONS} ${PEM} -l ${USER} "${1}" 4} 5 6run_ssh "cd /home/webapp/client&&git for-each-ref --sort=-committerdate | grep -m1 'tag'" 7

アドバイスなどでも結構ですので、宜しくお願い致します。

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

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

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

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

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

guest

回答2

0

ベストアンサー

これで代入できるかと思ったのですが、うまく行かないので、

どういう結果になるのでしょうか?

あと、シェルは何ですか?bashだと、変数代入のイコールの前に空白は置けませんので。

投稿2015/06/10 10:08

otn

総合スコア84423

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

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

kinpirans

2015/06/10 11:02

すみません、空白はダメという初歩的な事を知らなかった為。 お恥ずかしながら、それが原因でエラーになり、変数にうまく代入できていなかったようです。 ご指摘ありがとうございました。>_<
guest

0

tail -1 が必要なら、それも含めて書けば、いける気はしますが…
otn 様のアドバイスも参考に。

投稿2015/06/10 10:18

takotakot

総合スコア1111

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

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

kinpirans

2015/06/10 11:03

すみません、もっとかなり初歩的なところで引っかかってたのが原因でした。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問