Dans mon script bash, je voudrais analyser zéro, un ou deux paramètres (le script peut les reconnaître), puis transmettre les paramètres restants à une commande invoquée dans le script. Comment puis je faire ça?
bash
command-line
Łukasz Lew
la source
la source
$@
traite essentiellement chaque élément du tableau comme une chaîne entre guillemets - ils sont transmis sans possibilité d'expansion. Cela garantit également que chacun est considéré comme un mot distinct. Cette explication avec un script de test démontrant la différence est ici: tldp.org/LDP/abs/html/internalvariables.html#APPREFbash utilise la commande shift :
par exemple shifttest.sh:
shifttest.sh 1 2 3 produit
la source
$1
sans les citer comme"$1"
, alors le shell effectuera le fractionnement des mots, donc par exemplefoo bar
sera transmis commefoo
etbar
séparément.Bash prend en charge les paramètres de sous - ensembles (voir Sous- ensembles et sous-chaînes ), vous pouvez donc choisir les paramètres à traiter / transmettre comme ceci.
ouvrez un nouveau fichier et modifiez-le: vim
r.sh
:exécuter:
le résultat est:
la source