2012-10-18 14 views
7

Tôi muốn chuyển các biến cho tập lệnh csh bằng cách sử dụng lệnh "qsub -v". Tôi hiểu chúng ta có thể liệt kê các cặp thông số có giá trị như dưới đây,Làm thế nào để sử dụng lệnh qsub -v trong mô-men xoắn PBS?

qsub -v par1=value1 par2=value2 myScript.csh 

Có ai biết nếu các giá trị của các thông số này có thể là một chuỗi, một danh sách các số số cách nhau bởi dấu phẩy hoặc một tên tập tin? ví dụ, là lệnh dưới đây có thể?

qsub -v par1='Cassie_score' par2=cassieFile.txt par3='100,200,300,' myScript.csh 

Thank you very much,

Trả lời

11

Họ chỉ cần có bằng dấu phẩy:

qsub -v var1="val1",var2=1,var3=val3 script.csh 

Ví dụ của bạn mà muốn được:

qsub -v par1='Cassie_score',par2=cassieFile.txt,par3='100,200,300,' myScript.csh 

Chỉ cần lưu ý điều này sẽ không di chuyển cassieFile.txt đến nút sẽ chạy công việc, vì vậy cassieFile.txt sẽ cần phải là một đường dẫn đến một vị trí trên một sh hệ thống tập tin được phát hiện.

+2

Nếu tôi không nhầm, @dbeer là người (về cơ bản) đã viết mã phân tích cú pháp tùy chọn này theo mô-men xoắn> = phiên bản 4. –

+1

Điều đó là chính xác. – dbeer

+0

WOW ~ Cool ~ Cảm ơn rất nhiều. Nó làm việc tốt với một vấn đề nhỏ. Khi tôi đặt par3 là '100,200,300', myScript.csh chỉ có thể nhận được giá trị đầu tiên 100. Tôi đoán nó giả định đó là dấu tách. Có cách nào để đảm bảo biến par3 nhận được phần còn lại của chuỗi? (Chuỗi này sẽ được sử dụng làm thiết lập đầu vào cho một số mô hình chạy từ xa, do đó không thể thay đổi dấu phẩy giữa 3 giá trị này. Tôi không kiểm soát được định dạng của chuỗi.) Cảm ơn bạn rất nhiều, – Cassie