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_funcneboset -o allexportpro 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