Dans mon script bash, je voudrais analyser zéro, un ou deux paramètres (le script peut les reconnaître), puis transférer les paramètres restants à une commande appelée dans le script. Comment puis je faire ça?
bash utilise la commande shift:
par exemple. shifttest.sh:
#!/bin/bash
echo $1
shift
echo $1 $2
shifttest.sh 1 2 3 produit
1
2 3
Bash prend en charge les paramètres de sous-ensemble (voir Sous-ensembles et sous-chaînes ), afin que vous puissiez choisir les paramètres à traiter/transmettre de la sorte.
ouvrez un nouveau fichier et éditez-le: vim r.sh
:
echo "params only 2 : ${@:2:1}"
echo "params 2 and 3 : ${@:2:2}"
echo "params all from 2: ${@:2:99}"
exécuter:
$ chmod u+x r.sh
$ ./r.sh 1 2 3 4 5 6 7 8 9 10
le résultat est:
params only 2 : 2
params 2 and 3 : 2 3
params all from 2: 2 3 4 5 6 7 8 9 10