Tôi có một kịch bản shell foo.sh
đó là một công việc qsub với nội dung:Đối số đi qua trong kịch bản sh
#!/bin/bash -l
#$ -S /bin/bash
#$ -N $2
echo $1
Tôi muốn vượt qua hai đối số. Nếu tôi gọi qsub foo.sh a b, đối số đầu tiên được xử lý chính xác và lặp lại với dòng lệnh là 'a'. Tuy nhiên, tôi không biết làm thế nào để vượt qua một đối số trong trường hợp thứ hai bắt đầu với '# $ -N'. Trong trường hợp này $ 2 không được đánh giá thành 'b' nhưng thực tế '$ 2' được đặt. Trợ giúp sẽ được nhiều đánh giá cao.
Tôi nghĩ bạn cần giải thích ý bạn là gì '# $ -N $ 2'. Nếu kịch bản của bạn là một kịch bản shell bourne thì đây là một chú thích (nó bắt đầu bằng '#') nhưng bạn có vẻ như nó có nghĩa là một cái gì đó khác. – Celada
Tôi đã cố gắng giải thích nó, xem bình luận cho Saptamus Prime. Tùy chọn này được sử dụng để đặt tên công việc trong môi trường cụm, ví dụ: xem: http://www.clusterresources.com/torquedocs/commands/qsub.shtml. Đúng, thông thường # được sử dụng cho nhận xét. Nhưng không phải khi được theo sau khi được sử dụng trong cú pháp # $ -Argument Value. Cảm ơn. – user1137731
Nếu câu hỏi liên quan đến metasyntax vỏ cụ thể cho qsub, bạn nên đã đề cập rằng trong câu hỏi. Dù sao, liên kết bạn đã gửi nói về chỉ thị '# PBS' nhưng nó không đề cập đến' # $ 'chút nào, vì vậy tôi vẫn không biết điều đó có nghĩa là gì. Trong mọi trường hợp, có vẻ như những chỉ thị 'qsub' đó được diễn giải bởi chính' qsub' ** trước khi tập lệnh được chạy, vì vậy sẽ có nghĩa là các đối số được truyền vào kịch bản khi nó được thực hiện không được nhập vào việc xử lý các chỉ thị đó. Tôi nghĩ bạn phải cung cấp một chuỗi tĩnh cho tên của công việc. – Celada