74 lines
2.1 KiB
HTML
74 lines
2.1 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: User interfaces</TITLE>
|
|
<LINK HREF="Bash-Prog-Intro-HOWTO-10.html" REL=next>
|
|
<LINK HREF="Bash-Prog-Intro-HOWTO-8.html" REL=previous>
|
|
<LINK HREF="Bash-Prog-Intro-HOWTO.html#toc9" REL=contents>
|
|
</HEAD>
|
|
<BODY>
|
|
<A HREF="Bash-Prog-Intro-HOWTO-10.html">Next</A>
|
|
<A HREF="Bash-Prog-Intro-HOWTO-8.html">Previous</A>
|
|
<A HREF="Bash-Prog-Intro-HOWTO.html#toc9">Contents</A>
|
|
<HR>
|
|
<H2><A NAME="s9">9. User interfaces</A> </H2>
|
|
|
|
<H2><A NAME="ss9.1">9.1 Using select to make simple menus</A>
|
|
</H2>
|
|
|
|
<P>
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
#!/bin/bash
|
|
OPTIONS="Hello Quit"
|
|
select opt in $OPTIONS; do
|
|
if [ "$opt" = "Quit" ]; then
|
|
echo done
|
|
exit
|
|
elif [ "$opt" = "Hello" ]; then
|
|
echo Hello World
|
|
else
|
|
clear
|
|
echo bad option
|
|
fi
|
|
done
|
|
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
<P> If you run this script you'll see that it is a
|
|
programmer's dream for text based menus. You'll probably notice
|
|
that it's very similar to the 'for' construction, only rather
|
|
than looping for each 'word' in $OPTIONS, it prompts the user.
|
|
<P>
|
|
<H2><A NAME="ss9.2">9.2 Using the command line </A>
|
|
</H2>
|
|
|
|
<P>
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
#!/bin/bash
|
|
if [ -z "$1" ]; then
|
|
echo usage: $0 directory
|
|
exit
|
|
fi
|
|
SRCD=$1
|
|
TGTD="/var/backups/"
|
|
OF=home-$(date +%Y%m%d).tgz
|
|
tar -cZf $TGTD$OF $SRCD
|
|
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
<P>
|
|
<P> What this script does should be clear to you. The expression
|
|
in the first conditional tests if the program has received an argument
|
|
($1) and quits if it didn't, showing the user a little usage message.
|
|
The rest of the script should be clear at this point.
|
|
<HR>
|
|
<A HREF="Bash-Prog-Intro-HOWTO-10.html">Next</A>
|
|
<A HREF="Bash-Prog-Intro-HOWTO-8.html">Previous</A>
|
|
<A HREF="Bash-Prog-Intro-HOWTO.html#toc9">Contents</A>
|
|
</BODY>
|
|
</HTML>
|