2012-08-23 28 views
5

Tôi muốn kế thừa các biến môi trường trong GNU Parallel. Tôi có một số 'kịch bản' (thực sự chỉ là danh sách các lệnh, được thiết kế để sử dụng với GNU Parallel) với hàng trăm dòng mà tất cả đều gọi các chương trình bên ngoài khác nhau. Tuy nhiên, các chương trình bên ngoài (ngoài tầm kiểm soát của tôi) yêu cầu một số biến môi trường phải được đặt trước khi chúng chạy.Thừa kế các biến môi trường với GNU Parallel

Cài đặt/xuất chúng cục bộ dường như không hữu ích và tôi không thấy bất kỳ cách nào để thêm thông tin này vào tiểu sử.

Tài liệu dường như không có bất kỳ điều gì và các trang SO tương tự đề xuất bao gồm lệnh trong tập lệnh. Tuy nhiên, điều này có vẻ như một giải pháp không thích hợp. Có cách nào để xuất khẩu môi trường hiện tại hoặc có thể chỉ định các biến bắt buộc trong tập lệnh không?

Cảm ơn!

Trả lời

6

này làm việc cho tôi:

FOO="My brother's 12\" records" 
export FOO 
parallel echo 'FOO is "$FOO" Process id $$ Argument' ::: 1 2 3 

Để làm cho nó làm việc cho các kết nối từ xa (thông qua ssh), bạn cần báo giá biến để mở rộng vỏ. parallel --shellquote có thể giúp bạn thực hiện điều đó:

parallel -S server export FOO=$(parallel --shellquote ::: "$FOO")\;echo 'FOO is "$FOO" Process id $$ Argument' ::: 1 2 3 

Nếu điều đó không giải quyết được vấn đề của bạn, vui lòng xem xét ví dụ không hoạt động.

- Edit -

Nhìn vào --env giới thiệu trong phiên bản 20121022

- Edit -

Nhìn vào env_parallel giới thiệu vào năm 20160322.

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