2009-09-17 7 views
1

J'ai donc le script .csh generate.csh Je souhaite appeler un autre script .csh depuis l'intérieur. J'ai essayéComment exécuter un script .csh avec des arguments de ligne de commande à partir du script .csh

./shell_gen.csh test1 test2.prt

Mais il fonctionne shell_gen.csh mais sans arguments de ligne de commande.

Quelqu'un?

Merci

generate.csh

#!/bin/csh 
./shell_gen.csh test1 test2.prt 

shell_gen.csh

#!/bin/csh 
set source = output 
############################################################ 
# create pbm-gifs/ directory 
############################################################ 
set destination1 = /scratch/graphics/$1gif 
echo making $destination1 

if (! -e $destination1) then 
    mkdir $destination1 
    foreach file ($source/*.pgm) 
    echo convert $file $destination1/$file:t:r.gif 
    convert $file $destination1/$file:t:r.gif 
end 
else 
echo "$destination1/ exists" 
endif 
+0

pouvez-vous coller le script? –

+0

Donc 'shell_gen.csh' fait écho" making/scratch/graphics/gif "(c'est-à-dire rien entre"/"et" gif ")? Votre script fonctionne pour moi (il fait écho à "making/scratch/graphics/test1gif"). –

Répondre

2

je vous dirais probablement mettre besoin d'accolades autour de la variable de paramètres de position quand ils sont concaténés contre certains autres caractères:

set destination1 = /scratch/graphics/${1}gif 

Mais vous voudrez peut-être un point là-bas aussi:

set destination1 = "/scratch/graphics/${1}.gif" 

et citations protéger contre des espaces.

+0

cette partie fonctionne .... quand je cours de la ligne de commande le script ./shell_gen.csh test test1.prt cela fonctionne bien ... quand il est appelé du script ci-dessus ne fonctionne pas – grobartn

1

$ 1gif n'est pas une référence à un paramètre positionnel.

Avez-vous essayé $ {1} gif comme Dennis l'a suggéré? Je pense que cela devrait fonctionner. AUSSI je ne vois aucune référence à $ 2 n'importe où bien que votre génération envoie clairement un deuxième argument.

Enfin la première ligne devrait probablement #!/Bin/csh -f

Best,
-pbr

Questions connexes