Tôi dường như không thể chuyển các biến môi trường cho các tập lệnh được gửi đến bộ lập lịch cụm bsub
. Nó hoạt động tốt khi tôi gửi các lệnh sử dụng trực tiếp các biến môi trường này, nhưng các biến môi trường này không thể được sử dụng trong các tập lệnh tiếp theo. Tại sao lại như vậy, và làm thế nào tôi có thể sửa nó?
Đây là một ví dụ đơn giản mà tôi đã cố chuyển qua x=1
một tập lệnh:
me@cluster:~[407]$ bsub -I -tty -env 'x=1' 'echo .$x.'
Info: No jobname given, set to: Job_with_no_name
Info: No output file given, set to: output_%J_%I.txt
Info: No memory limit given, set to: 512MB
Info: No runtime limit given, set to: 15min
Job <35590315> is submitted to queue <normal>.
<<Waiting for dispatch ...>>
<<Starting on linuxbmc0243>>
.1.
me@cluster:~[408]$ echo 'echo .$x.' > myechox
me@cluster:~[409]$ more myechox
echo .$x.
me@cluster:~[410]$ chmod +x myechox
me@cluster:~[411]$ bsub -I -tty -env 'x=1' myechox
Info: No jobname given, set to: Job_with_no_name
Info: No output file given, set to: output_%J_%I.txt
Info: No memory limit given, set to: 512MB
Info: No runtime limit given, set to: 15min
Job <35590318> is submitted to queue <normal>.
<<Waiting for dispatch ...>>
<<Starting on linuxbmc1279>>
..
me@cluster:~[412]$ bsub -I -tty -env 'x=1' 'export x;myechox'
Info: No jobname given, set to: Job_with_no_name
Info: No output file given, set to: output_%J_%I.txt
Info: No memory limit given, set to: 512MB
Info: No runtime limit given, set to: 15min
Job <35590340> is submitted to queue <normal>.
<<Waiting for dispatch ...>>
<<Starting on linuxbmc1045>>
..
Cập nhật : Công việc này:
me@cluster:~[456]$ bsub -I -tty -env 'x=1' 'export x=$x;myechox'
Info: No jobname given, set to: Job_with_no_name
Info: No output file given, set to: output_%J_%I.txt
Info: No memory limit given, set to: 512MB
Info: No runtime limit given, set to: 15min
Job <35609253> is submitted to queue <normal>.
<<Waiting for dispatch ...>>
<<Starting on linuxbmc0975>>
.1.
Trong khi đó, tôi cũng đã phát hiện ra rằng bsub
thích được sử dụng bsub < scriptfile
hơn là bsub scriptfile
; điều này dường như được yêu cầu để cho phép phân tích cú pháp các tùy chọn nhúng (sử dụng #BSUB
) và nó cũng giải thích tại sao các biến chỉ được đặt cục bộ (vì không có tập lệnh con nào được gọi).
Tuy nhiên, bây giờ tôi cũng đã thử điều này, điều đáng ngạc nhiên là không hoạt động:
me@cluster:~[457]$ bsub -I -tty -env 'x=1' < myechox
Info: No jobname given, set to: Job_with_no_name
Info: No output file given, set to: output_%J_%I.txt
Info: No memory limit given, set to: 512MB
Info: No runtime limit given, set to: 15min
Job <35609459> is submitted to queue <normal>.
<<Waiting for dispatch ...>>
<<Starting on linuxbmc1140>>
..
Cập nhật 2 : Tôi đã thử export
ing x
trước, có tác dụng tương tự như khi sử dụng -env 'x=1'
:
me@cluster:~[458]$ export x=1
me@cluster:~[460]$ bsub -I -tty 'echo .$x.'
Info: No jobname given, set to: Job_with_no_name
Info: No output file given, set to: output_%J_%I.txt
Info: No memory limit given, set to: 512MB
Info: No runtime limit given, set to: 15min
Job <35610151> is submitted to queue <normal>.
<<Waiting for dispatch ...>>
<<Starting on linuxbmc1140>>
.1.
me@cluster:~[459]$ bsub -I -tty < myechox
Info: No jobname given, set to: Job_with_no_name
Info: No output file given, set to: output_%J_%I.txt
Info: No memory limit given, set to: 512MB
Info: No runtime limit given, set to: 15min
Job <35609990> is submitted to queue <normal>.
<<Waiting for dispatch ...>>
<<Starting on linuxbmc1140>>
..
Cập nhật 3 : Điều này, một lần nữa, hoạt động, mà tôi coi là một câu trả lời cho câu hỏi của tôi:
me@cluster:~[571]$ (echo export x=$x && cat myechox) | bsub -I -tty
Info: No jobname given, set to: Job_with_no_name
Info: No output file given, set to: output_%J_%I.txt
Info: No memory limit given, set to: 512MB
Info: No runtime limit given, set to: 15min
Job <35641024> is submitted to queue <normal>.
<<Waiting for dispatch ...>>
<<Starting on linuxbmc1045>>
.1.
export x=$x;myechox
, và điều này cũng hoạt động. Tôi tự hỏi nếu điều này được dự kiến sẽ được thực hiện như vậy ...
bsub
thích được sử dụng bsub < scriptfile
hơn là bsub scriptfile
; điều này dường như được yêu cầu để cho phép phân tích cú pháp các tùy chọn nhúng (sử dụng #BSUB
). Vì vậy, trong khi tôi cần câu hỏi của mình, câu hỏi ban đầu vẫn không may;)