j'ai cru comprendre que c'est possible d'"introduire" une variable dans
un sous script,
cad qu'on indique le contenu de la variable au moment de lancer le
script,
de sorte que quand le script démarre, il a deja cette variable qui existe
comment on fait ça en sh, svp ? :-)
(je compte tjr pas me lancer dans la programmation poussée en sh, j'en
ai besoin dans un cas très particulier)
ps :
j'ai bien lu toutes vos réponses à mes msg précédents, mais j'ai pas
encore tout digéré ;-)
merci :-)
--
j'agis contre l'assistanat, je travaille dans une SCOP !
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Stephane Chazelas
2007-10-07, 15:50(+02), Thomas: [...]
j'ai cru comprendre que c'est possible d'"introduire" une variable dans un sous script, cad qu'on indique le contenu de la variable au moment de lancer le script, de sorte que quand le script démarre, il a deja cette variable qui existe
comment on fait ça en sh, svp ? :-)
(je compte tjr pas me lancer dans la programmation poussée en sh, j'en ai besoin dans un cas très particulier) [...]
var=value ./ton-script
On passe par une variable d'environnement. Les shells initialisent des variables shell pour chaque variable d'environnement dont le nom est au bon format (contient lettres et chiffres et _ et ne commencant pas par un chiffre).
-- Stéphane
2007-10-07, 15:50(+02), Thomas:
[...]
j'ai cru comprendre que c'est possible d'"introduire" une variable dans
un sous script,
cad qu'on indique le contenu de la variable au moment de lancer le
script,
de sorte que quand le script démarre, il a deja cette variable qui existe
comment on fait ça en sh, svp ? :-)
(je compte tjr pas me lancer dans la programmation poussée en sh, j'en
ai besoin dans un cas très particulier)
[...]
var=value ./ton-script
On passe par une variable d'environnement. Les shells
initialisent des variables shell pour chaque variable
d'environnement dont le nom est au bon format (contient lettres
et chiffres et _ et ne commencant pas par un chiffre).
j'ai cru comprendre que c'est possible d'"introduire" une variable dans un sous script, cad qu'on indique le contenu de la variable au moment de lancer le script, de sorte que quand le script démarre, il a deja cette variable qui existe
comment on fait ça en sh, svp ? :-)
(je compte tjr pas me lancer dans la programmation poussée en sh, j'en ai besoin dans un cas très particulier) [...]
var=value ./ton-script
On passe par une variable d'environnement. Les shells initialisent des variables shell pour chaque variable d'environnement dont le nom est au bon format (contient lettres et chiffres et _ et ne commencant pas par un chiffre).
-- Stéphane
Thomas
In article , Thomas wrote:
j'ai cru comprendre que c'est possible d'"introduire" une variable dans un sous script, cad qu'on indique le contenu de la variable au moment de lancer le script, de sorte que quand le script démarre, il a deja cette variable qui existe
comment on fait ça en sh, svp ? :-)
(je compte tjr pas me lancer dans la programmation poussée en sh, j'en ai besoin dans un cas très particulier)
précision :
j'exécute make setup build install et lui il lit des variables dans un fichier de config
je vais demander à l'auteur de tout ça qu'il fasse en sorte que la variable ne soit modifiée que si elle n'existe pas
est ce que on peut demander à make d'avoir une variable des le départ, comme ça ?
-- j'agis contre l'assistanat, je travaille dans une SCOP !
In article
<fantome.forums.tDeContes-1F8FD1.15505407102007@news.proxad.net>,
Thomas <fantome.forums.tDeContes@free.fr.invalid> wrote:
j'ai cru comprendre que c'est possible d'"introduire" une variable dans
un sous script,
cad qu'on indique le contenu de la variable au moment de lancer le
script,
de sorte que quand le script démarre, il a deja cette variable qui existe
comment on fait ça en sh, svp ? :-)
(je compte tjr pas me lancer dans la programmation poussée en sh, j'en
ai besoin dans un cas très particulier)
précision :
j'exécute
make setup build install
et lui il lit des variables dans un fichier de config
je vais demander à l'auteur de tout ça qu'il fasse en sorte que la
variable ne soit modifiée que si elle n'existe pas
est ce que on peut demander à make d'avoir une variable des le départ,
comme ça ?
--
j'agis contre l'assistanat, je travaille dans une SCOP !
j'ai cru comprendre que c'est possible d'"introduire" une variable dans un sous script, cad qu'on indique le contenu de la variable au moment de lancer le script, de sorte que quand le script démarre, il a deja cette variable qui existe
comment on fait ça en sh, svp ? :-)
(je compte tjr pas me lancer dans la programmation poussée en sh, j'en ai besoin dans un cas très particulier)
précision :
j'exécute make setup build install et lui il lit des variables dans un fichier de config
je vais demander à l'auteur de tout ça qu'il fasse en sorte que la variable ne soit modifiée que si elle n'existe pas
est ce que on peut demander à make d'avoir une variable des le départ, comme ça ?
-- j'agis contre l'assistanat, je travaille dans une SCOP !
Thomas
In article , Stephane Chazelas wrote:
2007-10-07, 15:50(+02), Thomas: [...]
j'ai cru comprendre que c'est possible d'"introduire" une variable dans un sous script, cad qu'on indique le contenu de la variable au moment de lancer le script, de sorte que quand le script démarre, il a deja cette variable qui existe
comment on fait ça en sh, svp ? :-)
(je compte tjr pas me lancer dans la programmation poussée en sh, j'en ai besoin dans un cas très particulier) [...]
var=value ./ton-script
merci :-)
On passe par une variable d'environnement. Les shells initialisent des variables shell pour chaque variable d'environnement dont le nom est au bon format (contient lettres et chiffres et _ et ne commencant pas par un chiffre).
qq c'est deja, une variable d'environnement ?
je croyais que c'était une variable pour laquelle on fait export var et que ça la rendais accessible par tous les processus, même ceux qui n'ont rien avoir avec le processus qui fait le export
mais moi j'ai besoin que INSTALL soit accessible par make, et peut être par ses fils, mais pas par les autres c'est ça que ça fait, ce que tu m'as dit ?
-- j'agis contre l'assistanat, je travaille dans une SCOP !
In article <slrnfghr64.m3a.stephane.chazelas@spam.is.invalid>,
Stephane Chazelas <cette.adresse@est.invalid> wrote:
2007-10-07, 15:50(+02), Thomas:
[...]
j'ai cru comprendre que c'est possible d'"introduire" une variable dans
un sous script,
cad qu'on indique le contenu de la variable au moment de lancer le
script,
de sorte que quand le script démarre, il a deja cette variable qui existe
comment on fait ça en sh, svp ? :-)
(je compte tjr pas me lancer dans la programmation poussée en sh, j'en
ai besoin dans un cas très particulier)
[...]
var=value ./ton-script
merci :-)
On passe par une variable d'environnement. Les shells
initialisent des variables shell pour chaque variable
d'environnement dont le nom est au bon format (contient lettres
et chiffres et _ et ne commencant pas par un chiffre).
qq c'est deja, une variable d'environnement ?
je croyais que c'était une variable pour laquelle on fait
export var
et que ça la rendais accessible par tous les processus, même ceux qui
n'ont rien avoir avec le processus qui fait le export
mais moi j'ai besoin que INSTALL soit accessible par make, et peut être
par ses fils, mais pas par les autres
c'est ça que ça fait, ce que tu m'as dit ?
--
j'agis contre l'assistanat, je travaille dans une SCOP !
j'ai cru comprendre que c'est possible d'"introduire" une variable dans un sous script, cad qu'on indique le contenu de la variable au moment de lancer le script, de sorte que quand le script démarre, il a deja cette variable qui existe
comment on fait ça en sh, svp ? :-)
(je compte tjr pas me lancer dans la programmation poussée en sh, j'en ai besoin dans un cas très particulier) [...]
var=value ./ton-script
merci :-)
On passe par une variable d'environnement. Les shells initialisent des variables shell pour chaque variable d'environnement dont le nom est au bon format (contient lettres et chiffres et _ et ne commencant pas par un chiffre).
qq c'est deja, une variable d'environnement ?
je croyais que c'était une variable pour laquelle on fait export var et que ça la rendais accessible par tous les processus, même ceux qui n'ont rien avoir avec le processus qui fait le export
mais moi j'ai besoin que INSTALL soit accessible par make, et peut être par ses fils, mais pas par les autres c'est ça que ça fait, ce que tu m'as dit ?
-- j'agis contre l'assistanat, je travaille dans une SCOP !
Mihamina Rakotomandimby
Thomas wrote:
qq c'est deja, une variable d'environnement ?
"qu'est-ce que"!
je croyais que c'était une variable pour laquelle on fait export var
Mais en moins rigoureux (et si j'interprete la réponse de Stéphane), on appelle variable d'environnement toute variable que le script en cours (qu'on nommera le "contexte") considère comme ayant une signification, qu'elle soit initialisée ou pas. Elles peuvent etre initialisées avec un export ou d'une autre façon.
Thomas wrote:
qq c'est deja, une variable d'environnement ?
"qu'est-ce que"!
je croyais que c'était une variable pour laquelle on fait
export var
Mais en moins rigoureux (et si j'interprete la réponse de Stéphane), on
appelle variable d'environnement toute variable que le script en cours
(qu'on nommera le "contexte") considère comme ayant une signification,
qu'elle soit initialisée ou pas.
Elles peuvent etre initialisées avec un export ou d'une autre façon.
je croyais que c'était une variable pour laquelle on fait export var
Mais en moins rigoureux (et si j'interprete la réponse de Stéphane), on appelle variable d'environnement toute variable que le script en cours (qu'on nommera le "contexte") considère comme ayant une signification, qu'elle soit initialisée ou pas. Elles peuvent etre initialisées avec un export ou d'une autre façon.
Stephane Chazelas
2007-10-07, 17:41(+02), Thomas: [...]
var=value ./ton-script
merci :-)
On passe par une variable d'environnement. Les shells initialisent des variables shell pour chaque variable d'environnement dont le nom est au bon format (contient lettres et chiffres et _ et ne commencant pas par un chiffre).
qq c'est deja, une variable d'environnement ?
L'environnement est une liste de "var=value"s passee a l'execution d'une commande. Un peu comme les arguments sauf que par convention, les commandes passent aux commandes qu'elles executent les memes variables que celles qu'elle a recu quand on l'a executee. Ce qui fait que l'environnement est quelque chose qui s'herite de commande a commande.
je croyais que c'était une variable pour laquelle on fait export var
L'environnement n'est pas un concept specifique au shell. En shell, on fait un "export var" pour convertir une variable shell en variable d'environnement, c'est a dire dire au shell de rajouter "var=sa-value" a l'environnement qui sera passé aux commandes futures.
et que ça la rendais accessible par tous les processus, même ceux qui n'ont rien avoir avec le processus qui fait le export
Dans
var=value cmd
"var=value" est rajouté a l'environnement qui est passé a "cmd" uniquement. Evidemment, "cmd" est libre (et ne s'en prive pas en general) de passer cette variable aux commandes qu'elle executera.
mais moi j'ai besoin que INSTALL soit accessible par make, et peut être par ses fils, mais pas par les autres c'est ça que ça fait, ce que tu m'as dit ?
make a des variables aussi. awk a des variables, le shell a des variables. Ne pas croire que ces variables se trouvent automagiquement converties entre elles.
Par defaut, make se sert aussi des variables d'environnement pour initialiser ses variables a lui (les $(INSTALL)). Make peut aussi lancer des shells qui peuvent utiliser des variable shell.
Dans
target: rm $(INSTALL)/file
C'est une variable de make (l'expansion est faite par make avant de lancer le shell qui lancera la commande rm). Dans
target: rm "$$INSTALL/file"
make execute la commande shell rm "$INSTALL/file" et la le shell expandera *sa* variable $INSTALL.
INSTALL=whatever make target
fera en sorte que la variable $(INSTALL) de make ansi que les variables $INSTALL des eventuels lancés par make soient *initialisees* a "whatever".
make target INSTALL=whatever
est une maniere de donner a make une valeur specifique a une de *ses* variables qui prendra le dessus sur celles definies dans le Makefile, et avec au moins le make de GNU, ca a aussi pour consequence de creer la variable d'environnement correspondante (c'est a dire que make passera "INSTALL=whatever" dans l'environnement des commandes (en particulier des shells) qu'il executera).
-- Stéphane
2007-10-07, 17:41(+02), Thomas:
[...]
var=value ./ton-script
merci :-)
On passe par une variable d'environnement. Les shells
initialisent des variables shell pour chaque variable
d'environnement dont le nom est au bon format (contient lettres
et chiffres et _ et ne commencant pas par un chiffre).
qq c'est deja, une variable d'environnement ?
L'environnement est une liste de "var=value"s passee a
l'execution d'une commande. Un peu comme les arguments sauf que
par convention, les commandes passent aux commandes qu'elles
executent les memes variables que celles qu'elle a recu quand on
l'a executee. Ce qui fait que l'environnement est quelque chose
qui s'herite de commande a commande.
je croyais que c'était une variable pour laquelle on fait
export var
L'environnement n'est pas un concept specifique au shell. En
shell, on fait un "export var" pour convertir une variable shell
en variable d'environnement, c'est a dire dire au shell de
rajouter "var=sa-value" a l'environnement qui sera passé aux
commandes futures.
et que ça la rendais accessible par tous les processus, même ceux qui
n'ont rien avoir avec le processus qui fait le export
Dans
var=value cmd
"var=value" est rajouté a l'environnement qui est passé a "cmd"
uniquement. Evidemment, "cmd" est libre (et ne s'en prive pas en
general) de passer cette variable aux commandes qu'elle
executera.
mais moi j'ai besoin que INSTALL soit accessible par make, et peut être
par ses fils, mais pas par les autres
c'est ça que ça fait, ce que tu m'as dit ?
make a des variables aussi. awk a des variables, le shell a des
variables. Ne pas croire que ces variables se trouvent
automagiquement converties entre elles.
Par defaut, make se sert aussi des variables d'environnement
pour initialiser ses variables a lui (les $(INSTALL)). Make peut
aussi lancer des shells qui peuvent utiliser des variable shell.
Dans
target:
rm $(INSTALL)/file
C'est une variable de make (l'expansion est faite par make avant
de lancer le shell qui lancera la commande rm). Dans
target:
rm "$$INSTALL/file"
make execute la commande shell rm "$INSTALL/file" et la le shell
expandera *sa* variable $INSTALL.
INSTALL=whatever make target
fera en sorte que la variable $(INSTALL) de make ansi que les
variables $INSTALL des eventuels lancés par make soient
*initialisees* a "whatever".
make target INSTALL=whatever
est une maniere de donner a make une valeur specifique a une de
*ses* variables qui prendra le dessus sur celles definies dans
le Makefile, et avec au moins le make de GNU, ca a aussi pour
consequence de creer la variable d'environnement correspondante
(c'est a dire que make passera "INSTALL=whatever" dans
l'environnement des commandes (en particulier des shells) qu'il
executera).
On passe par une variable d'environnement. Les shells initialisent des variables shell pour chaque variable d'environnement dont le nom est au bon format (contient lettres et chiffres et _ et ne commencant pas par un chiffre).
qq c'est deja, une variable d'environnement ?
L'environnement est une liste de "var=value"s passee a l'execution d'une commande. Un peu comme les arguments sauf que par convention, les commandes passent aux commandes qu'elles executent les memes variables que celles qu'elle a recu quand on l'a executee. Ce qui fait que l'environnement est quelque chose qui s'herite de commande a commande.
je croyais que c'était une variable pour laquelle on fait export var
L'environnement n'est pas un concept specifique au shell. En shell, on fait un "export var" pour convertir une variable shell en variable d'environnement, c'est a dire dire au shell de rajouter "var=sa-value" a l'environnement qui sera passé aux commandes futures.
et que ça la rendais accessible par tous les processus, même ceux qui n'ont rien avoir avec le processus qui fait le export
Dans
var=value cmd
"var=value" est rajouté a l'environnement qui est passé a "cmd" uniquement. Evidemment, "cmd" est libre (et ne s'en prive pas en general) de passer cette variable aux commandes qu'elle executera.
mais moi j'ai besoin que INSTALL soit accessible par make, et peut être par ses fils, mais pas par les autres c'est ça que ça fait, ce que tu m'as dit ?
make a des variables aussi. awk a des variables, le shell a des variables. Ne pas croire que ces variables se trouvent automagiquement converties entre elles.
Par defaut, make se sert aussi des variables d'environnement pour initialiser ses variables a lui (les $(INSTALL)). Make peut aussi lancer des shells qui peuvent utiliser des variable shell.
Dans
target: rm $(INSTALL)/file
C'est une variable de make (l'expansion est faite par make avant de lancer le shell qui lancera la commande rm). Dans
target: rm "$$INSTALL/file"
make execute la commande shell rm "$INSTALL/file" et la le shell expandera *sa* variable $INSTALL.
INSTALL=whatever make target
fera en sorte que la variable $(INSTALL) de make ansi que les variables $INSTALL des eventuels lancés par make soient *initialisees* a "whatever".
make target INSTALL=whatever
est une maniere de donner a make une valeur specifique a une de *ses* variables qui prendra le dessus sur celles definies dans le Makefile, et avec au moins le make de GNU, ca a aussi pour consequence de creer la variable d'environnement correspondante (c'est a dire que make passera "INSTALL=whatever" dans l'environnement des commandes (en particulier des shells) qu'il executera).