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:
- Uzávěr EOF nesmí následovat po mezerách/tabulátorech, ale musí být na začátku posledního řádku.
- Ujistěte se, že jste exportovali místní funkce pomocí
export -f my_func
neboset -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.
Jaký je účinek nastavení linuxového socketu - vysoká priorita?
Závažná chyba skladatele:Deklarace Fxp... musí být kompatibilní s ...AbstractAssetsRepository.php na řádku 334