Shell scripte und prozesse

Hi,

wird bei der ausführung eines shell-scriptes, für kommandos in diesem script, jeweils ein eigener child prozess gestartet? wenn ich z.b. ein schript test.sh ausführe in dem der befehl „df“ aufgerufen wird, läuft dann dann test.sh als prozess und dann auch „df“? oder auch bei dem befehl mail, was ja ein eigenes programm ist?

danke und grüße

Bonkers

Moien

wird bei der ausführung eines shell-scriptes, für kommandos in
diesem script, jeweils ein eigener child prozess gestartet?

ja.

wenn ich z.b. ein schript test.sh ausführe in dem der befehl
„df“ aufgerufen wird, läuft dann dann test.sh als prozess und
dann auch „df“?

ja.

Einige eingebaute Commands der Shell werden nicht als Prozess gestartet. Aber das meiste wird seine eigene PID, Adressraum … usw bekommen.

oder auch bei dem befehl mail, was ja ein
eigenes programm ist?

ja, der bekommt eine PID.

cu

noch eine frage
vielen dank, noch eine frage:

wenn ich ein shell script ausführe mit ./test.sh & dann läuft es ohne die console zu blockieren. was genau bedeuted dieses &, ist schlecht danach zu googeln…

grüße

Bonkers

Moien

wenn ich ein shell script ausführe mit ./test.sh & dann läuft
es ohne die console zu blockieren. was genau bedeuted dieses
&, ist schlecht danach zu googeln…

Das & verlegt den aufgerufenen Prozess in den Hintergrund. Mit „jobs“ kann man sich die im Hintergrund ablaufenden Sachen ankucken, mit "fg " wieder nach vorne holen. „ctrl-z“ stoppt einen aktuell laufenden Prozess, mit „bg“ schickt man gestoppte Prozess in den Hintergrund…

„man bash“ erklärt die Console etwas näher (allerdings auch etwas zu genau…)

cu

1 Like