Automator-Terminalコマンドの結果を表示


9

TL; DR Automatorを介して.appを作成した場合、ダイアログまたはターミナルウィンドウにシェルスクリプトの結果を表示するにはどうすればよいですか?

Automatorを使用してシェルスクリプトを実行しています

adb install /Directory/$1.apk

Automatorを介して実行すると、結果が表示されます(インストールが成功したか、filname.apkが見つからないか、他の端末から通知されます)。アプリとして保存し、ダブルクリックして実行すると、これらの結果が表示されません。

実行したスクリプトの結果を表示するダイアログまたはターミナルウィンドウを表示するにはどうすればよいですか?


私はこの質問を使用してこれを作成しました:github.com/robertocaldas/AdbInstallService
Roberto

回答:


2

これを行うには、いくつかの方法があります。

  • シェルスクリプト実行に確認を求めるアクションを追加し、メッセージフィールドで使用します$1
  • 別の実行シェルスクリプトを追加して実行しosascript -e 'tell app "System Events" to display dialog "$1"'ます。あなたは選択する必要があります引数として上のパス入力ドロップダウン。

8
$1これらのいずれかの方法で表示されるだけです。
リード

@Jakar最初のRun Shell Scriptアクションを実行してテストしましたが、echo something確実に機能します。多分あなたはスクリプトが何かを返さないのですか?
Thecafremo 2014年

はい。私はそれがに何か持って考えているadbのAutomatorスクリプトを経由してターミナルで出力があるので、私はそのコマンドを実行した後、(Androidの開発者向けSDKの一部)ではなく。
リード

文字列補間osascriptを処理するためのわずかな変更-e 'app "System Events"にダイアログ "'" $ 1 "'"'を表示するよう
通知する

20

出力が数行しかない場合はそれを変数に割り当て、出力を示す確認ダイアログを表示します。

  1. アクション「変数の値を設定」を追加
  2. 新しい変数を入力してください。 output
  3. アクション「確認を求める」を追加
  4. メッセージフィールドに、上記で宣言した変数名を入力します。変数名を入力している間、Automatorは変数名を完了するように提案します。Enterキーを押して受け入れます。これにより、Automatorは変数名をプレーンテキストメッセージとして解釈しなくなります。

これは次のようになります。 テキスト出力付きのAutomator

注意:私も$1アプローチを試みましたが、成功しませんでした。

出力の行が多い場合はすべての出力を新しいTextEditドキュメントに転送する必要があります。これを行うには、スクリプトアクションの後に「新しいテキストエディットドキュメント」アクションを追加します。

これは次のようになります。 新しいテキスト編集ドキュメントアクション

ヒント:診断メッセージは多くの場合、標準エラーに出力されます。標準エラーに送信されるテキストも収集するにexec 2>&1は、bashスクリプトの先頭にを追加します。


1
すごい私が必要なもの!
code4j

1
この解決策は私にとってはうまく
いき

これは私にとって本当に便利で、出力の値を取得できない理由を説明しました。素晴らしい仕事
CommentLuv

これを変更して、Text Mateドキュメントを開くことはできますか?
グレッグ

1

「変数の値を設定」を使用する必要があります

ここに画像の説明を入力してください


情報が少ないことを除いて、これはダニエルKの回答の単なる複製であるため、反対票を投じようとしています...
adfaklsdjf
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.