2016-01-27 17 views
18

Giả sử tôi có một kịch bản Groovy trong Jenkins có chứa một kịch bản lệnh nhiều dòng. Làm thế nào tôi có thể thiết lập và sử dụng một biến trong kịch bản đó? Theo cách thông thường tạo ra một lỗi:Làm thế nào để thiết lập các biến trong một kịch bản shell nhiều dòng trong Jenkins Groovy?

sh """ 
    foo='bar' 
    echo $foo 
""" 

Caught: groovy.lang.MissingPropertyException: No such property: foo for class: groovy.lang.Binding

Trả lời

44

Bạn cần thay đổi để ba dấu nháy đơn ''' hay thoát khỏi đô la \$

Sau đó, bạn sẽ bỏ qua các khuôn mẫu hấp dẫn đó là những gì đem lại cho bạn vấn đề này

+0

Tuyệt vời, cảm ơn bạn –

3

tôi chỉ đặt một '\' ở cuối dòng

sh script: """\ 
    foo='bar' \ 
    echo $foo \ 
""", returnStdout: true 

Câu lệnh này hoạt động trên tập lệnh của tôi.

Các vấn đề liên quan