2013-01-11 18 views

Trả lời

10

gì xảy ra nếu bạn cố gắng:

println ["bash", "-c", "echo `date`"].execute().text 

tôi đoán sẽ là với

"echo `date`".execute() 

java của Runtime#exec(String) sẽ được sử dụng bên dưới, nếu bạn đang gọi execute() trên một String. Trong trường hợp đó, điều này chỉ đơn giản là tokenizes chuỗi và thực hiện chương trình echo với lập luận

`date` 

hoặc

$(date) 

nhưng đó là vỏ (bash) cú pháp, và phải được thực hiện thông qua bash.

+2

Hầu hết, println có vấn đề với điều này, nhưng tách nó thành hai dòng làm việc: 'def process = [" bash "," -c ", command] .execute(); println process.text' – Dag