GNU/Linux >> Znalost Linux >  >> Linux

Jak časový limit skupiny příkazů v Bash

Můžete také použít metodu Here Document EOF k vytvoření víceřádkového skriptu za chodu. Hlavní výhodou této metody je, že můžete použít dvojité uvozovky bez escapování to:

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

Poznámky:

  1. Uzávěr EOF nesmí následovat po mezerách/tabulátorech, ale musí být na začátku posledního řádku.
  2. Ujistěte se, že jste exportovali místní funkce pomocí export -f my_func nebo set -o allexport pro všechny funkce (před jejich deklarací). To je relevantní pro předchozí odpovědi také, protože volání bash/sh spustí proces v nové relaci, aniž by si uvědomil funkce místního prostředí.

timeout není utilita shellu a neprovádí zpracování ve stylu shellu. K provedení musí být zadán jeden jediný příkaz. Tento příkaz však může mít libovolný počet argumentů. Naštěstí jeden z příkazů, které mu můžete zadat, je bash :

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

Samozřejmě v této podobě jsou nyní rovnátka nadbytečná:

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

Zde bash je příkaz, který timeout provádí. -c a sleep 2; echo something jsou argumenty tohoto příkazu.


Linux
  1. Jak napsat smyčku v Bash

  2. Jak změnit Cron Shell (sh to Bash)?

  3. Jak změnit počet příkazů uložených v historii Bash

  1. Jak používat příkazy historie Bash

  2. Jak mohu používat aliasované příkazy s xargs?

  3. Jak vypsat seznam složek pomocí příkazů bash?

  1. Jak spustit příkazy bash Linuxu ve skriptu PERL?

  2. Jak ladit Bash skript?

  3. Jak určit vlastní automatické doplňování pro konkrétní příkazy?