Bonjour à tous,
Je suis débutant sou Linux et je voudrais savoir à quoi correspond la notation $$ dans un script shell, par exemple $$(variable) ?
Merci
Version imprimable
Bonjour à tous,
Je suis débutant sou Linux et je voudrais savoir à quoi correspond la notation $$ dans un script shell, par exemple $$(variable) ?
Merci
echo $$ retourne l'IDentifiant du Processus courant (PID), en l'occurrence celui du script.
cf. man bash
$$(variable) ? jamais vu...
Techniquement, ce serait plus:
Qui lui indique que le shell dans lire le contenu de 'variable'.Code:
1
2 $(variable)
$$(variable), c'est possible que ce soit dans un echo. Dans le genre, on affiche un '$' avant le contenu de la variable, mais j'en suis pas sur.
Merci pour vos éclairages.
En effet, mon script a pour but d'écrire un autre script (un makefile en l'occurrence) donc
signifie que le script va écrire un autre script avecCode:printf "$$(variable)"
C'est bien ça?Code:$(variable)
:D
en bash :soit le PID du shell et le texte (var)...Code:
1
2
3
4
5
6
7
8
9
10
11 var=bla echo "$var" bla echo "${var}" bla echo "\${var}" ${var} echo "\$var" $var echo "$$(var)" 7218(var)
?
La syntaxe $(programme) qu'on trouve aussi écrite sous forme plus ancienne `programme` indique au shell courant d'aller exécuter ledit programme et de ramener à l'endroit du script ce que le programme a affiché. Permet ainsi au shell d'utiliser un programme externe pour faire ce qu'il ne sait pas faire lui-même.
Exemples
Maintenant, dans la syntaxe "$$(programme)", le "$$" prend le pas et est interprété comme le pid et le reste (programme) comme un bête texte. Sauf si le premier "$" est précédé d'un backslash demandant au shell de ne pas l'utiliser comme métacaractère mais comme simple texte. Dans ce cas, t'auras alors ce que $(programme) affiche précédé d'un "$"...Code:
1
2
3
4
5
6
7 rep=`pwd` rep=$(pwd) i=0 i=`expr $i + 1` i=$(expr $i + 1) liste=`ls -l` liste=$(ls -l)