Hvordan kalder man et shell-script fra et andet shell-script?

Jeg har to shell-scripts, a.sh og b.sh.

Hvordan kan jeg kalde b.sh fra shell-scriptet a.sh?

Du kan gøre dette på flere forskellige måder:

  1. Gør det andet script eksekverbart, tilføj linjen #!/bin/bash øverst og stien hvor filen er til miljøvariablen $PATH. Derefter kan du kalde det som en normal kommando;

  2. Eller kalde den med kommandoen source (alias er .) som f.eks: source /path/to/script;

  3. Eller brug kommandoen bash til at udføre den: /bin/bash /sti/til/script;

Den første og tredje metode udfører scriptet som en anden proces, så variabler og funktioner i det andet script vil ikke være tilgængelige.
Den anden metode udfører scriptet i det første scripts proces og trækker variabler og funktioner fra det andet script ind, så de kan bruges fra det kaldende script.

Hvis du i den anden metode bruger exit i det andet script, vil det også afslutte det første script i den anden metode. Hvilket ikke vil ske i den første og tredje metode.

Kommentarer (12)

Tjek dette ud.

#!/bin/bash
echo "This script is about to run another script."
sh ./script.sh
echo "This script has just run another script."
Kommentarer (4)
pathToShell="/home/praveen/"   
chmod a+x $pathToShell"myShell.sh"
sh $pathToShell"myShell.sh"
Kommentarer (0)