Questions marquées «subshell»

51
Est-ce que $ () est un sous-shell?

Je comprends la syntaxe de sous-shell (<commands...>), est-ce $()juste un sous-shell à partir duquel vous pouvez récupérer des valeurs de variable? Remarque: Ceci s'applique à bash 4.4 sur la base de libellés différents dans leur

48
Pourquoi (exit 1) ne quitte-t-il pas le script?

J'ai un script qui ne se ferme pas quand je le veux. Un exemple de script avec la même erreur est: #!/bin/bash function bla() { return 1 } bla || ( echo '1' ; exit 1 ) echo '2' Je supposerais voir la sortie: :~$ ./test.sh 1 :~$ Mais je vois réellement: :~$ ./test.sh 1 2 :~$ La ()commande chaînant...

31
Création de sous-coque Bash avec des accolades

Selon cela , placer une liste de commandes entre accolades entraîne l'exécution de la liste dans le contexte de shell actuel. Aucun sous-shell n'est créé . Utiliser pspour voir cela en action Il s'agit de la hiérarchie de processus pour un pipeline de processus exécuté directement sur la ligne de...

24
Règle pour invoquer un sous-shell dans Bash?

Je semble mal comprendre la règle Bash pour créer un sous-shell. Je pensais que les parenthèses créent toujours un sous-shell, qui fonctionne comme son propre processus. Cependant, cela ne semble pas être le cas. Dans l'extrait de code A (ci-dessous), la deuxième sleepcommande ne s'exécute pas dans...

24
Comment puis-je détecter si je suis dans un sous-shell?

J'essaie d'écrire une fonction pour remplacer la fonctionnalité du exitbuiltin pour m'empêcher de quitter le terminal. J'ai essayé d'utiliser la SHLVLvariable d'environnement mais elle ne semble pas changer dans les sous-coquilles: $ echo $SHLVL 1 $ ( echo $SHLVL ) 1 $ bash -c 'echo $SHLVL' 2 Ma...

18
Pourquoi une variable est-elle visible dans un sous-shell?

Le Learning Bash Book mentionne qu'un sous-shell héritera uniquement des variables d'environnement et des descripteurs de fichiers, etc., et qu'il n'héritera pas des variables qui ne sont pas exportées: $ var=15 $ (echo $var) 15 $ ./file # this file include the same command echo $var $ Comme je...

16
Fonction bash avec état

Je voudrais implémenter une fonction dans Bash qui augmente (et renvoie) un nombre à chaque appel. Malheureusement, cela semble non trivial puisque j'appelle la fonction à l'intérieur d'un sous-shell et qu'il ne peut par conséquent pas modifier les variables de son shell parent. Voici ma tentative:...

14
Le piège est-il hérité d'un sous-shell?

J'ai essayé un script suivant: #!/bin/bash trap 'echo "touching a file" && touch $FILE' EXIT foo1(){ echo "foo1" } foo(){ echo "foo" export FILE=${FILE:-/tmp/file1} } (foo1) foo La sortie du script ci-dessus était: [root@usr1 my_tests]# ./test.sh foo1 foo touching a file Cependant, je...

13
Comment obtenir le pid d'un sous-shell?

Comment obtenir le pid d'un sous-shell? Par exemple: $ echo $$ 16808 Cela ne fonctionne pas, car le shell d'origine se développe $$: $ ( echo $$ ) 16808 Pourquoi les guillemets simples ne fonctionnent-ils pas? Une fois que le shell d'origine a supprimé le guillemet simple, le sous-shell ne se...

11
Développer le sous-shell avant de l'exécuter?

J'exécute souvent des commandes à l'aide de sous-coquilles et j'aimerais parfois que les sous-coquilles soient développées avant d'exécuter quelque chose. De cette façon, je pourrais vérifier ce que je fais et éventuellement modifier ce qui est sur le point de se produire également. Par exemple,...