Bases de Linux et de la ligne de commande
$ cat s.sh
#!/bin/bash
echo "$# $1"
$ ./s.sh a "b c" dComme ci-dessus, on exécute le script s.sh avec des arguments. Quelle est la sortie ?
- A3 ./s.sh
- B3 a
- C4 a
Afficher la réponse et l'explication
Réponse : B. 3 a
Dans un script, $1, $2 … sont le premier, le deuxième … argument, $# est le nombre d'arguments et $0 le nom du script lui-même. "b c" est placé entre guillemets doubles : il forme donc un seul argument contenant un espace, et il y a trois arguments, a, b c et d. Par conséquent, $# vaut 3 et $1 vaut a, et la sortie est 3 a. Pour transmettre tous les arguments à une autre commande en les gardant séparés, on écrit "$@".
Continuer : 9 autres questions sur Bases de Linux et de la ligne de commande