GNU/Linux >> Tutoriels Linux >  >> Linux

Comment expirer un groupe de commandes dans Bash

Vous pouvez également utiliser la méthode Here Document EOF pour créer le script multiligne à la volée. Le principal avantage est que vous pouvez utiliser des guillemets doubles sans échappement il :

timeout 1s bash <<EOF
    sleep 2s
    echo "something without escaping double quotes"  
EOF

Remarques :

  1. La fermeture EOF ne doit pas suivre les espaces/tabulations, mais être au début de la dernière ligne.
  2. Assurez-vous d'avoir exporté les fonctions locales avec export -f my_func ou set -o allexport pour toutes les fonctions (avant de les déclarer). Ceci est pertinent pour les réponses précédentes de même, depuis l'appel de bash/sh, exécutez le processus dans une nouvelle session, sans connaître les fonctions de l'environnement local.

timeout n'est pas un utilitaire shell et il n'effectue pas de traitement de type shell. Il doit recevoir une seule commande à exécuter. Cette commande, cependant, peut avoir n'importe quel nombre d'arguments. Heureusement, l'une des commandes que vous pouvez lui donner est bash :

timeout 1 bash -c '{ sleep 2; echo something; }'

Bien entendu, sous cette forme, les accolades sont désormais superflues :

timeout 1 bash -c 'sleep 2; echo something'

Ici, bash est la commande que timeout exécute. -c et sleep 2; echo something sont des arguments de cette commande.


Linux
  1. Comment utiliser les commandes d'historique de Bash

  2. Comment écrire une boucle dans Bash

  3. Comment déboguer un script bash ?

  4. Comment changer le shell Cron (sh en bash) ?

  5. Comment changer le nombre de commandes stockées dans l'historique de Bash

Comment commenter dans Bash

Comment personnaliser l'invite Bash sous Linux

Comment ajouter un utilisateur à un groupe sous Linux

Comment corriger facilement les commandes Bash mal orthographiées sous Linux

Comment exécuter un script bash

Comment augmenter le délai d'attente dans le mastic?