add directory docs
This commit is contained in:
98
docs/Install-Guide/install-guide-2.2.2/node150.html
Normal file
98
docs/Install-Guide/install-guide-2.2.2/node150.html
Normal file
@@ -0,0 +1,98 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3O//DTD W3 HTML 2.0//EN">
|
||||
<!Converted with LaTeX2HTML 95.1 (Fri Jan 20 1995) by Nikos Drakos (nikos@cbl.leeds.ac.uk), CBLU, University of Leeds >
|
||||
<HEAD>
|
||||
<TITLE>3.13.1 Shell scripts</TITLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<meta name="description" value="3.13.1 Shell scripts">
|
||||
<meta name="keywords" value="gs">
|
||||
<meta name="resource-type" value="document">
|
||||
<meta name="distribution" value="global">
|
||||
<P>
|
||||
<BR> <HR><A NAME=tex2html3653 HREF="node151.html"><IMG ALIGN=BOTTOM ALT="next" SRC="next_motif.gif"></A> <A NAME=tex2html3651 HREF="node149.html"><IMG ALIGN=BOTTOM ALT="up" SRC="up_motif.gif"></A> <A NAME=tex2html3645 HREF="node149.html"><IMG ALIGN=BOTTOM ALT="previous" SRC="previous_motif.gif"></A> <A NAME=tex2html3655 HREF="node1.html"><IMG ALIGN=BOTTOM ALT="contents" SRC="contents_motif.gif"></A> <A NAME=tex2html3656 HREF="node250.html"><IMG ALIGN=BOTTOM ALT="index" SRC="index_motif.gif"></A> <BR>
|
||||
<B> Next:</B> <A NAME=tex2html3654 HREF="node151.html">3.13.2 Shell variables and </A>
|
||||
<B>Up:</B> <A NAME=tex2html3652 HREF="node149.html">3.13 Customizing your Environment</A>
|
||||
<B> Previous:</B> <A NAME=tex2html3646 HREF="node149.html">3.13 Customizing your Environment</A>
|
||||
<BR> <HR> <P>
|
||||
<H2><A NAME=SECTION005131000000000000000>3.13.1 Shell scripts</A></H2>
|
||||
<A NAME=secshellscript> </A>
|
||||
<A NAME=3973> </A>
|
||||
<A NAME=3974> </A>
|
||||
Let's say that you use a series of commands often, and
|
||||
would like to shorten the amount of required typing by grouping all
|
||||
of them together into a single ``command''. For example, the commands
|
||||
<P><TT> /home/larry# <em>cat chapter1 chapter2 chapter3 <b>></b> book</em> <BR>
|
||||
/home/larry# <em>wc -l book</em> <BR>
|
||||
/home/larry# <em>lp book</em>
|
||||
<P></TT>
|
||||
would concatenate the files <tt>chapter1</tt>, <tt>chapter2</tt>, and
|
||||
<tt>chapter3</tt> and place the result in the file <tt>book</tt>. Then, a
|
||||
count of the number of lines in <tt>book</tt> would be displayed, and
|
||||
finally <tt>book</tt> would be printed with the <tt>lp</tt> command.
|
||||
<P>
|
||||
Instead of typing all of these commands, you could group them into a
|
||||
<b>shell script</b>. We described shell scripts briefly in
|
||||
Section <A HREF="node150.html#secshellscript">3.13.1</A>. The shell script used to run all of these
|
||||
commands would look like
|
||||
<P><TT> <PRE>#!/bin/sh
|
||||
# A shell script to create and print the book
|
||||
|
||||
cat chapter1 chapter2 chapter3 > book
|
||||
wc -l book
|
||||
lp book
|
||||
</PRE> <P></TT>
|
||||
If this script was saved in the file <tt>makebook</tt>, you could simply
|
||||
use the command
|
||||
<P><TT> /home/larry# <em>makebook</em>
|
||||
<P></TT>
|
||||
to run all of the commands in the script. Shell scripts are just
|
||||
plain text files; you can create them with an editor such as <tt>emacs</tt>
|
||||
or <tt>vi</tt>
|
||||
|
||||
<A NAME=tex2html683 HREF="footnode.html#4145"><IMG ALIGN=BOTTOM ALT="gif" SRC="foot_motif.gif"></A>.
|
||||
|
||||
<P>
|
||||
Let's look at this shell script. The first line, ``<tt>#!/bin/sh</tt>'',
|
||||
identifies the file as a shell script, and tells the shell how to
|
||||
execute the script. It instructs the shell to pass the script to
|
||||
<tt>/bin/sh</tt> for execution, where <tt>/bin/sh</tt> is the shell program
|
||||
itself. Why is this important? On most UNIX systems, <tt>/bin/sh</tt> is a
|
||||
Bourne-type shell, such as Bash. By forcing the shell script to run
|
||||
using <tt>/bin/sh</tt>, we are ensuring that the script will run under a
|
||||
Bourne-syntax shell (instead of, say, a C shell). This will cause your
|
||||
script to run using the Bourne syntax even if you use Tcsh (or another
|
||||
C shell) as your login shell.
|
||||
<P>
|
||||
<A NAME=4004> </A>
|
||||
The second line is a <em>comment</em>. Comments begin with the character
|
||||
``<tt>#</tt>'' and continue to the end of the line. Comments are
|
||||
ignored by the shell---they are commonly used to identify the shell script
|
||||
to the programmer.
|
||||
<P>
|
||||
The rest of the lines in the script are just commands, as you
|
||||
would type them to the shell directly. In effect, the shell reads
|
||||
each line of the script and runs that line as if you had typed it
|
||||
at the shell prompt.
|
||||
<P>
|
||||
<A NAME=4007> </A>
|
||||
<A NAME=4008> </A>
|
||||
Permissions are important for shell scripts. If you
|
||||
create a shell script, you must make sure that you have execute
|
||||
permission on the script in order to run it<A NAME=tex2html687 HREF="footnode.html#4009"><IMG ALIGN=BOTTOM ALT="gif" SRC="foot_motif.gif"></A>.
|
||||
The command
|
||||
<P><TT> /home/larry# <em>chmod u+x makebook</em>
|
||||
<P></TT>
|
||||
can be used to give yourself execute permission on the shell script
|
||||
<tt>makebook</tt>.
|
||||
<P>
|
||||
<BR> <HR><A NAME=tex2html3653 HREF="node151.html"><IMG ALIGN=BOTTOM ALT="next" SRC="next_motif.gif"></A> <A NAME=tex2html3651 HREF="node149.html"><IMG ALIGN=BOTTOM ALT="up" SRC="up_motif.gif"></A> <A NAME=tex2html3645 HREF="node149.html"><IMG ALIGN=BOTTOM ALT="previous" SRC="previous_motif.gif"></A> <A NAME=tex2html3655 HREF="node1.html"><IMG ALIGN=BOTTOM ALT="contents" SRC="contents_motif.gif"></A> <A NAME=tex2html3656 HREF="node250.html"><IMG ALIGN=BOTTOM ALT="index" SRC="index_motif.gif"></A> <BR>
|
||||
<B> Next:</B> <A NAME=tex2html3654 HREF="node151.html">3.13.2 Shell variables and </A>
|
||||
<B>Up:</B> <A NAME=tex2html3652 HREF="node149.html">3.13 Customizing your Environment</A>
|
||||
<B> Previous:</B> <A NAME=tex2html3646 HREF="node149.html">3.13 Customizing your Environment</A>
|
||||
<BR> <HR> <P>
|
||||
<BR> <HR>
|
||||
<P><ADDRESS>
|
||||
<I>Matt Welsh <BR>
|
||||
mdw@sunsite.unc.edu</I>
|
||||
</ADDRESS>
|
||||
</BODY>
|
||||
Reference in New Issue
Block a user