Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
becki:linux:bash [2015-10-16 06:12] becki [Bash Programming] |
becki:linux:bash [2016-03-03 11:25] (aktuell) becki [File Inclusion, Command Execution] |
||
---|---|---|---|
Zeile 16: | Zeile 16: | ||
**command** | **command** | ||
- | when the shell encounters a command, it forks off a child process to actually execute the command (external commands only; from abs-guide) FIXME: Is this true? Isn't this ''%%command &%%''? | + | when the shell encounters a command, it forks off a child process to actually execute the command (external commands only; from abs-guide). Parent script blocks until child process ends |
+ | |||
+ | **command &** | ||
+ | |||
+ | forks off a child process to execute the command and put child process into background so that the parent script continues immediately | ||
**eval command ...** | **eval command ...** | ||
Zeile 23: | Zeile 27: | ||
For me useful if command contains spaces witch are protected by single quotes, eg ''%%wget -S --header'Content-Type: application/json'%%''. Without eval, ''%%--header'Content-Type:%%'' and ''%%application/json'%%'' would be interpreted as 2 single arguments | For me useful if command contains spaces witch are protected by single quotes, eg ''%%wget -S --header'Content-Type: application/json'%%''. Without eval, ''%%--header'Content-Type:%%'' and ''%%application/json'%%'' would be interpreted as 2 single arguments | ||
+ | |||
+ | ===== Subshells == | ||
+ | |||
+ | FIXME | ||
+ | |||
+ | ===== Coprocesses == | ||
+ | |||
+ | The following example starts a shell function as a coproc and uses the coproc to manipulate a string: | ||
+ | |||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | |||
+ | test_coproc() { | ||
+ | read rein | ||
+ | echo ">$rein<" | ||
+ | } | ||
+ | |||
+ | coproc test_coproc | ||
+ | |||
+ | echo "Hallo" >&${COPROC[1]} | ||
+ | read -u ${COPROC[0]} rein | ||
+ | echo "$rein" | ||
+ | #cat <&${COPROC[0]} # alternative | ||
+ | </code> | ||
===== Expansion == | ===== Expansion == |