old-www/HOWTO/Bash-Prog-Intro-HOWTO-5.html

96 lines
2.9 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
<TITLE>BASH Programming - Introduction HOW-TO: Variables</TITLE>
<LINK HREF="Bash-Prog-Intro-HOWTO-6.html" REL=next>
<LINK HREF="Bash-Prog-Intro-HOWTO-4.html" REL=previous>
<LINK HREF="Bash-Prog-Intro-HOWTO.html#toc5" REL=contents>
</HEAD>
<BODY>
<A HREF="Bash-Prog-Intro-HOWTO-6.html">Next</A>
<A HREF="Bash-Prog-Intro-HOWTO-4.html">Previous</A>
<A HREF="Bash-Prog-Intro-HOWTO.html#toc5">Contents</A>
<HR>
<H2><A NAME="s5">5. Variables</A> </H2>
<P> You can use variables as in any programming languages.
There are no data types. A variable in bash can contain a number, a
character, a string of characters.
<P> You have no need to declare a variable, just
assigning a value to its reference will create it.
<P>
<P>
<P>
<H2><A NAME="ss5.1">5.1 Sample: Hello World! using variables</A>
</H2>
<P>
<BLOCKQUOTE><CODE>
<PRE>
#!/bin/bash
STR="Hello World!"
echo $STR
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P> Line 2 creates
a variable called STR and assigns the string "Hello World!" to
it. Then the VALUE of this variable is retrieved by putting
the '$' in at the beginning. Please notice (try it!)
that if you don't use the '$' sign, the output of the program will
be different, and probably not what you want it to be.
<H2><A NAME="ss5.2">5.2 Sample: A very simple backup script (little bit better)</A>
</H2>
<P>
<BLOCKQUOTE><CODE>
<PRE>
#!/bin/bash
OF=/var/my-backup-$(date +%Y%m%d).tgz
tar -cZf $OF /home/me/
</PRE>
</CODE></BLOCKQUOTE>
<P> This script introduces another thing. First
of all, you should be familiarized with the variable
creation and assignation on line 2. Notice the expression
'$(date +%Y%m%d)'.
If you run the script you'll notice that
it runs the
command inside the parenthesis, capturing its output.
<P>
<P> Notice that in this script, the output filename will
be different every day, due to the format switch to the date command(+%Y%m%d).
You can change this by specifying a different format.
<P> Some more examples:
<P> echo ls
<P> echo $(ls)
<H2><A NAME="ss5.3">5.3 Local variables</A>
</H2>
<P> Local variables can be created by using the keyword <I>local</I>.
<P>
<BLOCKQUOTE><CODE>
<PRE>
#!/bin/bash
HELLO=Hello
function hello {
local HELLO=World
echo $HELLO
}
echo $HELLO
hello
echo $HELLO
</PRE>
</CODE></BLOCKQUOTE>
<P> This example should be enought to show how to use a local variable.
<HR>
<A HREF="Bash-Prog-Intro-HOWTO-6.html">Next</A>
<A HREF="Bash-Prog-Intro-HOWTO-4.html">Previous</A>
<A HREF="Bash-Prog-Intro-HOWTO.html#toc5">Contents</A>
</BODY>
</HTML>