2013-01-13 3 views
9

Başka bir kabuk komut dosyasından bir kabuk komut dosyasını çağırıyorum ve aranan komut dosyası bazı giriş (komut satırı) parametreleri gerektiriyor.
Belirtilen kod aşağıda var, ama bu çalışmıyor. Argüman değerlerinin neden çağrılan betiğe geçirilmediğini bilmiyorum.Bir kabuk komut dosyası ve başka bir kabuk komut dosyasından bağımsız değişkenleri nasıl çağırılır

arg1 value is: ..... 
arg2 value is: ..... 
arg3 value is: ..... 

ben eksik: Ben script1.sh yürütmek zaman sonuç sonrasında olsun

script1.sh 
======================================= 
#!/bin/bash 
ARG1="val1" 
ARG2="val2" 
ARG3="val3" 
. /home/admin/script2.sh "$ARG1" "$ARG2" "$ARG3" 


script2.sh 
======================================= 
#!/bin/bash 
echo "arg1 value is: $1 ....." 
echo "arg2 value is: $2 ....." 
echo "arg3 value is: $3 ....." 

Ama?

+0

@John, 'Teşekkür ederim' ihmal nedenini biliyor musunuz? – user85

+5

Bu konuyla alakasız. Bu sitenin amacı kısa soruları ve cevapları içeren bir kitle kaynaklı SSS oluşturmaktır. –

+1

@sumbad, bir göz atın [burada] (http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts). "Teşekkür ederim", "Merhaba", "Saygılar" vb. Olmayan soruları tercih ederim. Barış. :-) –

cevap

11

İkinci komut dosyasını . /home/admin/script2.sh ile birlikte kullanarak, ilk komut dosyasında etkili bir şekilde yer alıyorsunuz, böylece komut satırı argümanlarını orijinal betiğe [email protected] içinde alabilirsiniz. Eğer gerçekten çağrı argümanlarla diğer komut istiyorsanız, o zaman

/home/admin/script2.sh "$ARG1" "$ARG2" "$ARG3" 

(çalıştırılabilir olduğundan emin olun) yapmak.

+0

evet bu benim için çalışıyor! – user85