Ce que je pointe, moi, c'est la différence entre exécuter et sourcer tes scripts. Tu as essayé de sourcer tes 2 scripts plutôt que de les exécuter ? Encore une fois, cela permet de garder le même contexte.
Version imprimable
Ce que je pointe, moi, c'est la différence entre exécuter et sourcer tes scripts. Tu as essayé de sourcer tes 2 scripts plutôt que de les exécuter ? Encore une fois, cela permet de garder le même contexte.
Exemple:
Code:
1
2
3
4
5
6
7 $ cat demo_sans_i.sh #!/usr/bin/bash echo "$-" $ ./demo_sans_i.sh hB
Code:
1
2
3
4
5
6
7 $ cat demo_avec_i.sh #!/usr/bin/bash -i echo "$-" $ ./demo_avec_i.sh himB
bonjour, j'ai dû mal utiliser tes exemples, car j'ai mis tes deux exemples dans deux scripts et j'obtient la chose suivante :
et pour l'autre :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 '/home/marlene/demo_avec_i.sh' $ cat demo_avec_i.sh #!/usr/bin/bash -i echo "$-" $ ./demo_avec_i.sh himB hBH ./demo_sans_i.sh: ligne 1: $ : commande introuvable hBH ./demo_sans_i.sh: ligne 6: $ : commande introuvable ./demo_sans_i.sh: ligne 7: himB : commande introuvable /home/marlene/demo_avec_i.sh: ligne 7: hB : commande introuvable
Code:
1
2
3
4
5
6 '/home/marlene/demo_sans_i.sh' /home/marlene/demo_sans_i.sh: ligne 1: $ : commande introuvable hBH /home/marlene/demo_sans_i.sh: ligne 6: $ : commande introuvable /home/marlene/demo_sans_i.sh: ligne 7: himB : commande introuvable
Les $ en début de ligne est un prompt, ici, tu vois des commandes lancées depuis un terminal...
Les scripts ne sont que:
etCode:
1
2
3 #!/usr/bin/bash echo "$-"
Code:
1
2
3 #!/usr/bin/bash -i echo "$-"
La balise -i veut dire que l'on rend le script interactif ?
Je dois l'ajouter de façon général à tous mes scripts si je veux les rendre interactif ?
Juste à celui va sourcer le .bashrcConda
Tout d'abord, merci à tous pour votre aide :) (et merci au développeur de bashbug)
Effectivement le problème venait du -i après bash permettant de rendre le script interactif.
Maintenant disedorgue sais tu pourquoi de "base" les scripts sont déclaré non interactif, il y a sans doute une raison.
Un shell interactif est un shell avec une entrée clavier et une sortie ecran, donc lié à un terminal.
Un script shell est par nature autonome, il fait son job et rend la main, il n'y a donc pas d'utilité à ce qu'il soit lié à un terminal.
Et pourquoi Anaconda ne configure son env que dans le cas d'un shell interactif ?
Tout simplement parce que les commandes d'anaconda utilise leur propre fichier de conf, l'init pour le shell est juste une facilité pour l'utilisateur.
Je vois ce que tu veux dire :).
Merci pour ton aide, et ton application a me répondre ;) malgré mon manque de connaissance ;).