[解決済み] Groovyによるシェルコマンドの実行
2022-04-18 22:39:55
質問
Groovyでは
execute
メソッドを
String
を使えば、シェルの実行がかなり簡単になります。
println "ls".execute().text
が、エラーが発生した場合は、結果の出力はありません。 標準エラーと標準アウトの両方を簡単に取得する方法はありますか? (両方の入力ストリームを読むために 2 つのスレッドを作成し、親ストリームを使用してそれらが完了するのを待ち、文字列をテキストに変換する) というコードの束を作る以外に?
みたいなのがあるといいんですけどね。
def x = shellDo("ls /tmp/NoFile")
println "out: ${x.out} err:${x.err}"
解決方法は?
OK、自分で解決しました。
def sout = new StringBuilder(), serr = new StringBuilder()
def proc = 'ls /badDir'.execute()
proc.consumeProcessOutput(sout, serr)
proc.waitForOrKill(1000)
println "out> $sout\nerr> $serr"
が表示されます。
out> err> ls: cannot access /badDir: No such file or directory
関連
-
[解決済み] Groovyで文字列をint型に変換する
-
[解決済み] Groovyでファイルを文字列に読み込むには?
-
[解決済み] Jenkinsfile (groovy)から変数に使用して実行されたシェルコマンドの出力を取得するには?
-
[解決済み】Groovy Shell の警告 "Could not open/create prefs root node ...".
-
[解決済み] Groovyによるシェルコマンドの実行
-
[解決済み] GroovyでMapをループスルーする?
-
[解決済み] Groovy: "def x = 0" の "def" は何のためにあるのですか?
-
[解決済み] Groovy / grails データ型を決定する方法は?
-
[解決済み] Gradleビルドを停止するおすすめの方法
-
[解決済み] Groovyの "each "クロージャから抜け出せるか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン