A l'intérieur de 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 invoquée dans le script. Comment puis je faire ça?Comment transférer des paramètres à une autre commande dans le script bash?
92
A
Répondre
153
Utilisez la shift
intégré dans la commande à "manger" les arguments. Appelez ensuite le processus enfant et transmettez-lui l'argument "[email protected]"
pour inclure tous les arguments restants. Remarquez les guillemets, ils doivent être conservés, car ils font que l'expansion de la liste d'arguments est correctement citée.
18
bash utilise le décalage commande:
par exemple shifttest.sh:
#!/bin/bash
echo $1
shift
echo $1 $2
shifttest.sh 1 2 3 produit
1
2 3
7
bash prend en charge les paramètres (voir Subsets and substrings sous- ensembles), de sorte que vous pouvez choisir les paramètres à traiter/pass comme ceci:
fichier nouveau ouvertet le modifier: vim r.sh
echo "params only 2 : ${@:2:1}"
echo "params 2 and 3 : ${@:2:2}"
echo "params all from 2: ${@:2:99}"
terme, il :
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
Questions connexes
- 1. écrire un script bash qui vérifie quelques paramètres spéciaux avant de passer le reste à une autre commande
- 2. exécuter la sortie d'un script comme une commande bash autonome
- 3. Commande d'exécution lorsque le script bash est arrêté
- 4. encodage clavier Commande Sur Bash Script
- 5. OpenSSL dans le script bash
- 6. sed remplace la commande dans un script bash?
- 7. Script Bash, correspondre à des dates comme?
- 8. Remplacer la sortie dans une boucle dans le script bash
- 9. Comment est-ce que je réutilise une commande dans bash avec différents paramètres?
- 10. Comment exécutez-vous une commande sur un système distant dans un script BASH?
- 11. Newline Madness dans Script Bash
- 12. Ajouter une seule commande Bash
- 13. Comment rediriger stdin à partir d'un script shell vers une commande dans le script shell?
- 14. Comment forcer l'auto-complétion de bash à une commande?
- 15. Transférer des fichiers en tant que paramètres
- 16. Comment transférer des données d'une base de données à une autre à l'aide d'un DataSet?
- 17. Déterminer le chemin du script BASH exécution
- 18. Transférer une copie des demandes HTTP vers un autre système
- 19. script bash 'here strings'
- 20. Comment transférer une partie de l'entrée d'un contrôle à un autre sans perdre le focus?
- 21. Comment exécuter un script bash sur save dans NetBeans?
- 22. Script pour l'écran bash
- 23. Procmail Transférer le script pour transférer les emails d'un domaine à l'autre
- 24. Comment transférer des données d'une base de données à une autre avec Hibernate?
- 25. Comment transférer des objets de Jframe vers un autre Jframe?
- 26. Comment transférer des valeurs de formulaire d'une page asp.net à une autre?
- 27. Dans un script/une commande bash, comment puis-je faire un bip de PC ou lire un fichier son?
- 28. Trace des programmes exécutés appelés par le script bash
- 29. Bash Script - validation logname
- 30. Bash: sélectionne une commande précédente qui correspond à un modèle
effectivement "$ @" est plus sûr que $ * – pixelbeat
Quelle est la différence? –
@pixelbeat: Merci, bonne prise. J'ai édité. @ Lewas Lew: voir la page liée dans le manuel. :) Fondamentalement, il gère mieux les citations. – unwind