2010-10-10 6 views
58

Je reconnais que le handle [email protected] dans un script shell est un tableau de tous les arguments donnés au script. Est-ce vrai?

Je demande parce que j'utilise normalement les moteurs de recherche pour recueillir des informations, mais je ne peux pas google pour [email protected] et je suis devenu trop personnalisé pour obtenir facilement tout servi.

+3

[Vous pouvez rechercher maintenant] (http://symbolhound.com/?q=bash+%24%40). – l0b0

+4

Vous devriez introduire des choses comme 'man bash' dans grep avec l'argument -C-set à quelque chose de raisonnable, c'est une compétence vraiment utile – djdanlib

+0

La question liée (que cette question est une copie de) a été posée 2 ans après cette question ... Cette question ne devrait-elle pas faire double emploi avec cette question et non l'inverse? – mgarey

Répondre

55

Oui. S'il vous plaît voir le man page of bash (la première chose que vous allez) sous Paramètres spéciaux

Paramètres spéciaux

Le shell traite plusieurs paramètres spécialement. Ces paramètres peuvent seulement être référencés; l'affectation à eux n'est pas autorisée.

* S'étend aux paramètres de position, en commençant par un. Lorsque l'expansion se produit entre guillemets doubles, elle se développe en un seul mot avec la valeur de chaque paramètre séparée par le premier caractère de la variable spéciale IFS. C'est-à-dire, "$*" est équivalent à "$1c$2c...", où c est le premier caractère de la valeur de la variable IFS. Si IFS n'est pas défini, les paramètres sont séparés par des espaces. Si IFS est nul, les paramètres sont joints sans séparateurs intermédiaires.

@ S'étend aux paramètres de position, en commençant par un. Lorsque l'expansion se produit entre guillemets doubles, chaque paramètre se développe en un mot distinct. C'est-à-dire, "[email protected]" est équivalent à "$1""$2" ... Si l'expansion entre guillemets se produit dans un mot, l'expansion du premier paramètre est jointe à la partie initiale du mot d'origine, et l'expansion du dernier paramètre est jointe avec la dernière partie du mot original. Lorsqu'il n'y a pas de paramètres de position, "[email protected]" et [email protected] se développent à zéro (c'est-à-dire qu'ils sont supprimés).

+27

oh garçon, bon qu'il a seulement 5000 lignes;) – vecvan

+8

Comme djanlib a dit: utiliser quelque chose comme 'man bash | grep -C2 '$ @' ' – cmbuckley

+42

@vecvan nombre de questions avant de lire l'homme bash: 1 ... nombre de questions après avoir lu l'homme bash: 12,031 – FloatingRock