2012-01-08 24 views
6

Ben içeriğe sahip bir qsub iştir bir shell script foo.sh var. Qsub foo.sh a b çağırırsam ilk argüman doğru bir şekilde işlenir ve komut satırına 'a' olarak yankılanır. Ancak, '# $ -N' ile başlayan ikinci durumda bir argümanın nasıl geçeceğini bilmiyorum. Bu durumda $ 2, 'b' olarak değerlendirilmez, ancak aslında '$ 2' ayarlanır. Yardım çok takdir edilecektir.Argüman

+0

"# $ -N $ 2" ile neyi kastettiğinizi açıklamanız gerektiğini düşünüyorum. Eğer senaryonuz bir bourne kabuk senaryosuysa, bu bir yorumdur ('# 'ile başlar) ama başka bir şey olarak kastediyorsunuz. – Celada

+0

Zaten bunu açıklamaya çalıştım, Saptamus Prime'a yorum yaz. Bu seçenek, bir küme ortamında iş adını ayarlamak için kullanılır. bkz: http://www.clusterresources.com/torquedocs/commands/qsub.shtml. Doğru, normalde # yorumlar için kullanılır. Ancak # $ -Argument Value sözdiziminde kullanıldığında takip edilmez. Teşekkürler. – user1137731

+0

Eğer soru, qsub'a özgü kabuk metasyntaksıyla ilgiliyse, söz konusu sorudan bahsetmeliydin. Her neyse, gönderdiğiniz link bir 'PBS' direktifinden bahsediyor, ama '# $' den bahsetmiyor, bu yüzden bunun ne anlama geldiğini hala bilmiyorum. Her durumda, "qsub" yönergelerinin 'qsub'nun kendisi tarafından yorumlanmasından dolayı ** betik çalıştırılır, bu yüzden betik çalıştırıldıktan sonra betiğe aktarılan argümanların girilmemesi mantıklı olur bu yönergelerin işlenişine. Sanırım işin adı için statik bir dizge sağlaman gerekiyor. – Celada

cevap

1

Hayır, yapamazsın yankıları bilmiyorum. Satır başında #, $ 2'nin betiğe argüman tarafından değiştirilmeyeceği şekilde yapar. Yapmaya çalıştığınız şeyi yapmanın yolu

qsub foo.sh -N <name> 
2

Benim için fune çalışır.

Ben -N komut araçları, ancak sh foo.sh a b tarafından çağrılan

#!/bin/bash -l 
#$ -S /bin/bash 
#$ -N $2 
echo $1 
echo $2 

derhal

a 
b 
+0

Cevabınız için teşekkürler. Ama daha önce eko komutuna geçen argümanın iyi çalıştığından bahsetmiştim. Ancak, ikinci durumda '# $ -N $ 2' $ 2, 'b' olarak değerlendirilmiyor.Bir bağlam vermek gerekirse: bu, güneş ızgara motoru için qsub betiğidir ve '-N' seçeneği işin adını belirler. Bu durumda iş, '$' olarak ayarlanacak ve 'b' olarak istenmeyecek. Yani genel soru parametrelerini '# $ -SomeParameterOption' $ 2'ye nasıl geçirebilirim? Teşekkür ederim. – user1137731