Je dois modifier un script ksh existant qui regarde les arguments de la ligne de commande en utilisant 'shift', et donc vide $ @, mais qui veut maintenant passer les arguments d'origine à un deuxième script après.Stockage de tableau d'entrée ksh en variable et passage à un autre script
Dans le cas de la ligne principale, je peux le faire en copiant $ @ dans une variable et en passant cela au second script, mais je ne peux pas l'obtenir pour les arguments de ligne de commande entre guillemets.
Si j'ai un script appelé 'imprimante' comme ci-dessous:
#!/bin/ksh
[email protected]
echo "Printing args"
until [[ $# -eq 0 ]];do
echo $1
shift
done
./printer2 $INPUT
et printer2 comme ci-dessous:
#!/bin/ksh
echo "Printing second args"
until [[ $# -eq 0 ]];do
echo $1
shift
done
Je voudrais que la sortie de
./printer first second "third forth"
être :
Printing args
first
second
third forth
Printing second args
first
second
third forth
J'ai essayé différentes combinaisons de guillemets autour des variables (à la fois dans l'affectation de $ INPUT et lors de la transmission à printer2) mais je n'arrive pas à le comprendre. Quelqu'un peut-il aider?
Correspondant à mes centres d'intérêt. Merci pour l'aide en tout cas! – Katerberg
Voir http://unix.stackexchange.com/questions/41357/what-is-the-most-correct-way-to-pass-an-array-to-a-function pour le raisonnement pourquoi. –