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
Argüman
cevap
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>
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
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
"# $ -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
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
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