Mám dva shellové skripty, a.sh
a b.sh
.
Jak mohu zavolat b.sh
ze shellového skriptu a.sh
?
Můžete to udělat několika různými způsoby:
Udělejte druhý skript spustitelným, přidejte na začátek řádek #!/bin/bash
a cestu, kde se soubor nachází, do proměnné prostředí $PATH. Pak jej můžete zavolat jako běžný příkaz;
Nebo jej zavolejte pomocí příkazu source
(alias je .
) takto: source /path/to/script
;
Nebo jej můžete spustit pomocí příkazu bash
: /bin/bash /cesta/do/skriptu
;
První a třetí metoda spustí skript jako jiný proces, takže proměnné a funkce v jiném skriptu nebudou přístupné.
Druhá metoda spustí skript v procesu prvního skriptu'a vytáhne proměnné a funkce z druhého skriptu, takže budou použitelné z volajícího skriptu.
Pokud ve druhé metodě použijete exit
, ukončí se tím i první skript. Což se v první a třetí metodě nestane.