Commande sur l'instence du shell qui appelé un script
2 réponses
Benoit B
Bonjour a tous,
Si par exemple je place "history -c" dans un script, la commande
n'aura pas d'effet sur l'instence du shell qui a appel=C3=A9 le
script(puisque le Shebang appelle une autre instance de shell).
Ex:
Dans un xterm j'appelle monscript
$ ./monscript
monscript contient
#!/bin/bash
history -c
Je recherche une m=C3=A9thod g=C3=A9n=C3=A9rale pour qu'une commande s'appl=
ique =C3=A0
l'instance du shell qui a lanc=C3=A9 le script...
Je ne sais pas si ma question est bien formul=C3=A9e...
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
=c3
Bonjour, Benoit B :
Je recherche une méthod générale pour qu'une commande s'applique à l'instance du shell qui a lancé le script...
J'essaie de reformuler : vous voulez que l'exécution d'un script se fasse au sein du shell appelant ce script, un peu comme si les commandes du dit script étaient dans la continuité de la session de travail dans le shell plutôt que dans un processus fils. Vous cherchez probablement la commande ".", ou "source" : $ . monscript ou : $ source monscript C'est une pratique toutefois peu recommandable car le contenu de "monscript" doit impérativement correspondre au shell appelant. Si vous souhaitez changer de shell pour une raison quelconque, il faudra réécrire tous les scripts que vous sourcez pour les porter sur le nouveau shell : admettons que vous souhaitiez passer au Z-shell, peut-être que la commande de nettoyage de l'historique des commandes ne sera pas la même. "source" est une commande "built-in", donc en bash l'aide est accessible via le manuel de bash, ou la commande: $ help source
Je ne sais pas si ma question est bien formulée...
Si j'ai répondu à côté de la plaque, c'est que ce n'était peut-être pas le cas. :-) Amicalement, -- Étienne Mollier
Bonjour,
Benoit B <benoitlst@gmail.com> :
Je recherche une méthod générale pour qu'une commande
s'applique à l'instance du shell qui a lancé le script...
J'essaie de reformuler : vous voulez que l'exécution d'un script
se fasse au sein du shell appelant ce script, un peu comme si
les commandes du dit script étaient dans la continuité de la
session de travail dans le shell plutôt que dans un processus
fils. Vous cherchez probablement la commande ".", ou "source" :
$ . monscript
ou :
$ source monscript
C'est une pratique toutefois peu recommandable car le contenu de
"monscript" doit impérativement correspondre au shell appelant.
Si vous souhaitez changer de shell pour une raison quelconque,
il faudra réécrire tous les scripts que vous sourcez pour les
porter sur le nouveau shell : admettons que vous souhaitiez
passer au Z-shell, peut-être que la commande de nettoyage de
l'historique des commandes ne sera pas la même.
"source" est une commande "built-in", donc en bash l'aide est
accessible via le manuel de bash, ou la commande:
$ help source
Je ne sais pas si ma question est bien formulée...
Si j'ai répondu à côté de la plaque, c'est que ce n'était
peut-être pas le cas. :-)
Je recherche une méthod générale pour qu'une commande s'applique à l'instance du shell qui a lancé le script...
J'essaie de reformuler : vous voulez que l'exécution d'un script se fasse au sein du shell appelant ce script, un peu comme si les commandes du dit script étaient dans la continuité de la session de travail dans le shell plutôt que dans un processus fils. Vous cherchez probablement la commande ".", ou "source" : $ . monscript ou : $ source monscript C'est une pratique toutefois peu recommandable car le contenu de "monscript" doit impérativement correspondre au shell appelant. Si vous souhaitez changer de shell pour une raison quelconque, il faudra réécrire tous les scripts que vous sourcez pour les porter sur le nouveau shell : admettons que vous souhaitiez passer au Z-shell, peut-être que la commande de nettoyage de l'historique des commandes ne sera pas la même. "source" est une commande "built-in", donc en bash l'aide est accessible via le manuel de bash, ou la commande: $ help source
Je ne sais pas si ma question est bien formulée...
Si j'ai répondu à côté de la plaque, c'est que ce n'était peut-être pas le cas. :-) Amicalement, -- Étienne Mollier
Benoit B
Le 30 juin 2018 à 10:06, Étienne Mollier org> a écrit :
Bonjour, Benoit B :
Je recherche une méthod générale pour qu'une commande s'applique à l'instance du shell qui a lancé le script...
J'essaie de reformuler : vous voulez que l'exécution d'un script se fasse au sein du shell appelant ce script, un peu comme si les commandes du dit script étaient dans la continuité de la session de travail dans le shell plutôt que dans un processus fils. Vous cherchez probablement la commande ".", ou "source" : $ . monscript ou : $ source monscript
Merci c'est bien ça !
C'est une pratique toutefois peu recommandable car le contenu de "monscript" doit impérativement correspondre au shell appelant. Si vous souhaitez changer de shell pour une raison quelconque, il faudra réécrire tous les scripts que vous sourcez pour les porter sur le nouveau shell : admettons que vous souhaitiez passer au Z-shell, peut-être que la commande de nettoyage de l'historique des commandes ne sera pas la même.
Pas grave, c'est pour un usage personnel. Avec gratitude, -- Benoit
Le 30 juin 2018 à 10:06, Étienne Mollier <etienne.mollier@mailoo. org> a écrit :
Bonjour,
Benoit B <benoitlst@gmail.com> :
Je recherche une méthod générale pour qu'une commande
s'applique à l'instance du shell qui a lancé le script...
J'essaie de reformuler : vous voulez que l'exécution d'un script
se fasse au sein du shell appelant ce script, un peu comme si
les commandes du dit script étaient dans la continuité de la
session de travail dans le shell plutôt que dans un processus
fils. Vous cherchez probablement la commande ".", ou "source" :
$ . monscript
ou :
$ source monscript
Merci c'est bien ça !
C'est une pratique toutefois peu recommandable car le contenu de
"monscript" doit impérativement correspondre au shell appelant.
Si vous souhaitez changer de shell pour une raison quelconque,
il faudra réécrire tous les scripts que vous sourcez pour les
porter sur le nouveau shell : admettons que vous souhaitiez
passer au Z-shell, peut-être que la commande de nettoyage de
l'historique des commandes ne sera pas la même.
Le 30 juin 2018 à 10:06, Étienne Mollier org> a écrit :
Bonjour, Benoit B :
Je recherche une méthod générale pour qu'une commande s'applique à l'instance du shell qui a lancé le script...
J'essaie de reformuler : vous voulez que l'exécution d'un script se fasse au sein du shell appelant ce script, un peu comme si les commandes du dit script étaient dans la continuité de la session de travail dans le shell plutôt que dans un processus fils. Vous cherchez probablement la commande ".", ou "source" : $ . monscript ou : $ source monscript
Merci c'est bien ça !
C'est une pratique toutefois peu recommandable car le contenu de "monscript" doit impérativement correspondre au shell appelant. Si vous souhaitez changer de shell pour une raison quelconque, il faudra réécrire tous les scripts que vous sourcez pour les porter sur le nouveau shell : admettons que vous souhaitiez passer au Z-shell, peut-être que la commande de nettoyage de l'historique des commandes ne sera pas la même.
Pas grave, c'est pour un usage personnel. Avec gratitude, -- Benoit