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

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

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

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

sh

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

Q&A

1回答

10137閲覧

adb shell コマンドの結果を変数に代入する方法について

buibui80

総合スコア1033

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

sh

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

0グッド

0クリップ

投稿2016/08/17 12:57

編集2022/01/12 10:55

最近Androidのテストを自動化するためシェルスクリプトを勉強しているのですが、
adb shell コマンドの結果を変数に代入する方法がわからず躓いている所です。

アクティビティの状態を取得できる
「adb shell dumpsys activity activities」コマンドの結果を変数に入れて
シェルスクリプトで解析処理しようと思っております。

しかし adb shell 上で値を変数に入れる方法がわからなかったので
以下のように試してみましたが何も echo されませんでした。

adb shell AAA="1234" adb shell echo $AAA

次に以下のようにしたら 5678 ではなく 1234 と echo されました。

AAA="1234" adb shell echo $AAA # 1234 adb shell AAA=5678; echo $AAA # 1234

そこで質問ですが、
シェルスクリプト上での adb shell コマンドの結果を変数に代入する方法を教えていただけないでしょうか?
それが出来たら「dumpsys activity activities」コマンドの結果をシェルスクリプトで解析できるのではと思っております。

よろしくお願い致します

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

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

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

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

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

guest

回答1

0

変数に入れるだけなら以下の方法で出力内容を取り込めますよ。

bash

1# 変数名=$(実行コマンド) 2MY_VAR=$(uname -a) 3echo $MY_VAR

投稿2016/08/18 02:05

kodai

総合スコア759

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

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

buibui80

2016/08/18 03:15

ご返答ありがとうございます。 通常のシェルスクリプトだとそれで変数に代入できるのですが、 adb shell MY_VAR =$(dumpsys) と adb shell 上で実行するとcommand not foundが返ってきます。 (adb shell dumpsys は問題なく動作します) 何か問題があるのでしょうか?
kodai

2016/08/18 07:00

その書き方だと dumpsys を実行になってしまいますね。adbコマンドの実行結果をホスト側でキャプチャしたいのであればこうだと思います。 ``` DUMP=$(adb shell dumpsys) echo $DUMP ```
buibui80

2016/08/18 08:43

ご返答ありがとうございます。 さっそく試した所、結果を受け取ることができました。 ですが、 本来このコマンドでは何十行も出力されるのですが、 受け取ったデータは全体のごく一部でした。 (echo したら全体の途中から数行のみが表示されました) ちなみに以下のようにファイルに書き込めば全て出力されることは確認できています。 adb shell dumpsys activity activities > ./dumpsys_activities.txt 何か気をつけることがあるのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問