summaryrefslogtreecommitdiff
path: root/doc/foreground.html
blob: a2a465f756691f9b38e6327f84fa839feddee510 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <meta http-equiv="Content-Language" content="en" />
  <title>execline: the foreground command</title>
  <meta name="Description" content="execline: the foreground command" />
  <meta name="Keywords" content="execline command foreground" />
  <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> -->
 </head>
<body>

<p>
<a href="index.html">execline</a><br />
<a href="http://skarnet.org/software/">Software</a><br />
<a href="http://skarnet.org/">skarnet.org</a>
</p>

<h1> The <tt>foreground</tt> program </h1>

<p>
<tt>foreground</tt> executes a sequence of commands.
</p>

<h2> Interface </h2>

<p>
 In an <a href="execlineb.html">execlineb</a> script:
</p>

<pre>
     foreground { <em>prog1...</em> } <em>prog2...</em>
</pre>

<ul>
 <li> <tt>foreground</tt> reads <em>prog1</em> in a
<a href="el_semicolon.html">block</a>. It forks and
executes it, then waits for it to complete. </li>
 <li> <tt>foreground</tt> sets the <tt>?</tt> environment
variable to the exit code of <em>prog1</em>. If <em>prog1...</em>
did not exit normally, the <tt>?</tt> value is 111. </li>
 <li> <tt>foreground</tt> then execs into <em>prog2...</em>. </li>
</ul>

<h2> Notes </h2>

<ul>
 <li> <tt>foreground</tt> is the basic sequence operator: it takes two
commands and executes them one by one. execline scripts require it to
wrap external commands that exit instead of natively supporting the
"perform some action, then execute some other program" model. </li>
 <li> <tt>foreground <em>prog1...</em> "" <em>prog2...</em></tt> is
equivalent to <tt>sh -c '<em>prog1...</em> ; exec <em>prog2...</em>'</tt>.
 </li>
</ul>

</body>
</html>