2013-01-13 42 views
9

Sto chiamando uno script di shell da un altro script di shell e lo script chiamato richiede alcuni parametri di input (riga di comando).
Ho il codice sotto menzionato, ma questo non funziona. Non so perché i valori dell'argomento non vengono passati allo script chiamato.Come chiamare uno script di shell e passare argomento da un altro script di shell

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 ....." 

Ma quando eseguo script1.sh ottengo risultato seguente:

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

Che cosa mi manca?

+0

@ John, posso sapere il motivo dell'omissione di "Grazie"? – user85

+5

È irrilevante. Lo scopo di questo sito è quello di costruire una FAQ crowdsourcing con domande e risposte concise. –

+1

@sumbad, dai un'occhiata [qui] (http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts). Preferisco le domande senza "Grazie", "Ciao", "Saluti" e così via. Pace. :-) –

risposta

11

Acquisendo il secondo script con . /home/admin/script2.sh, lo si sta effettivamente includendo nel primo script, in modo da ottenere gli argomenti della riga di comando sullo script originale in [email protected]. Se davvero si vuole chiamata l'altro script con gli argomenti, poi fare

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

(assicurarsi che sia eseguibile).

+0

sì, questo funziona per me !!! – user85

Problemi correlati