%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Using Linux Tools
%
% Author: FOSSEE 
% Copyright (c) 2009, FOSSEE, IIT Bombay
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\documentclass[17pt,compress]{beamer}
\usepackage{beamerthemesplit}
\mode<presentation>
{
  \usetheme{Warsaw}
  \useoutertheme{infolines}
  \setbeamercovered{transparent}
  \setbeamertemplate{navigation symbols}{}
}
% Taken from Fernando's slides.
\usepackage{ae,aecompl}
\usepackage[scaled=.95]{helvet}

\usepackage[english]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}

% change the alerted colour to LimeGreen
\definecolor{LimeGreen}{RGB}{50,205,50}
\setbeamercolor{structure}{fg=LimeGreen}
\author[FOSSEE]{}
\institute[IIT Bombay]{}
\date[]{}
% \setbeamercovered{transparent}

% theme split
\usepackage{verbatim}
\newenvironment{colorverbatim}[1][]%
{%
\color{blue}
\verbatim
}%
{%
\endverbatim
}%

\usepackage{mathpazo,courier,euler}
\usepackage{listings}
\lstset{language=sh,
    basicstyle=\ttfamily\bfseries,
  showstringspaces=false,
  keywordstyle=\color{black}\bfseries}

% logo
\logo{\includegraphics[height=1.30 cm]{../images/3t-logo.pdf}}
\logo{\includegraphics[height=1.30 cm]{../images/fossee-logo.pdf}

\hspace{7.5cm}
\includegraphics[scale=0.99]{../images/fossee-logo.pdf}\\
\hspace{281pt}
\includegraphics[scale=0.80]{../images/3t-logo.pdf}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% DOCUMENT STARTS
\begin{document}

\sffamily \bfseries
\title
[Control Structures and Operators]
{Control Structures and Operators}
\author
[FOSSEE]
{\small Talk to a Teacher\\{\color{blue}\url{http://spoken-tutorial.org}}\\\vspace{0.25cm}National Mission on Education
 through ICT\\{\color{blue}\url{ http://sakshat.ac.in}} \\ [0.8cm]
   Contributed by FOSSEE Team \\IIT Bombay  \\[0.3cm]
}

% slide 1
\begin{frame}
   \titlepage
\end{frame}

\begin{frame}
\frametitle{Objectives}
\label{sec-2}

At the end of this tutorial, you will be able to,
\begin{itemize}
\item Prepare scripts using `Control Operators'
\item Use Environment Variables
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Pre-requisites}
\label{sec-3}

Spoken tutorial on -
\begin{itemize}
\item Shell Scripts \& Variables
\end{itemize}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Control Structures}
  \begin{itemize}
  \item Many Control Structures and Operators in Bash
  \item \texttt{test} command to test for conditions
  \item A whole range of tests that can be performed
    \begin{itemize}
    \item \texttt{STRING1 = STRING2} -- string equality
    \item \texttt{-e FILE} -- existence of FILE
    \end{itemize}
  \item \texttt{man} page of \texttt{test} gives list of various tests
  \end{itemize}
\end{frame}

\begin{frame}[fragile]
  \frametitle{\texttt{if}}
  \begin{itemize}
  \item Print message if directory exists in \texttt{pwd}
  \end{itemize}
  \begin{lstlisting}
    #!/bin/bash
    if test -d $1
    then
    echo "Yes, the directory" $1 
         "is present"
    fi
  \end{lstlisting} % $
\end{frame}

\begin{frame}[fragile]
  \frametitle{\texttt{[ ]} - alias for \texttt{test}}
  \begin{itemize}
  \item Square brackets (\texttt{[]}) instead of \texttt{test}
  \end{itemize}
  \begin{lstlisting}
    #!/bin/bash
    if [ $1 -lt 0 ]
    then
    echo "number is negative"
    else
    echo "number is non-negative"
    fi
  \end{lstlisting} % $
\end{frame}

\begin{frame}[fragile]
  \frametitle{Exercise}
\begin{itemize}
\item Given a set of \texttt{.mp3} files, with names beginning with numbers 
      followed by text -- Eg: \texttt{08 - Society.mp3}

\begin{itemize}
\item Rename the files to have just the names
\item Replace any spaces in the name with hyphens
\end{itemize}
\end{itemize}
\end{frame}

%  \begin{itemize}
%  \item Loop over the list of files
%  \item Process the names, to get new names
%  \item Rename the files
%  \end{itemize}
%\end{frame}

\begin{frame}[fragile]
  \frametitle{Shell Variables vs. Environment Variables}
 %\texttt{Environment variables vs. Shell variables}
\begin{table}
\begin{tabular}{|l|l|}
\hline
Shell var. & Environment var.\\\hline
Only current instance & Valid for the whole\\
of the shell & whole session\\\hline
UPPER CASE & lower case\\\hline
\end{tabular}
\end{table}
\end{frame}

\begin{frame}
\frametitle{Summary}
\label{sec-8}

  In this tutorial, we have learnt to,


\begin{itemize}
\item Prepare scripts using control structures -- ``if'', ``if-else'',
      ``for'' \& ``while''
\item Use environment variables
\item Export variable to environment of all processes, using 
      ``export'' command
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\frametitle{Evaluation}
\label{sec-9}


\begin{enumerate}
\item Print the text ``dog man'' in such a way that the prompt continues after 
the text.
\vspace{8pt}
\item How can you add a new path variable ``\texttt{/myscripts}'' to \$PATH variable ?
\end{enumerate}
\end{frame}
\begin{frame}
\frametitle{Solutions}
\label{sec-10}


\begin{enumerate}
\item \$ echo -n dog man
\vspace{15pt}
\item \$ export PATH=\$PATH://myscripts
\end{enumerate}
\end{frame}

\begin{frame}
\frametitle{SDES \& FOSSEE}
\begin{center}
\begin{itemize}
\item \small{SDES}\\
\small{\color{LimeGreen}Software Development techniques for Engineers and Scientists} \\
\scriptsize An initiative by FOSSEE. \\
\vspace{3pt}
\scriptsize For more information on SDES, please visit {\color{blue}\url{http://fossee.in/sdes}}\\
\vspace{10pt}
\item \small{FOSSEE}\\
\small {\color{LimeGreen}Free and Open-source Software for \\Science and Engineering Education} \\
\scriptsize Based at IIT Bombay, Funded by MHRD.\\
\vspace{3pt}
\scriptsize Part of National Mission on Education through ICT \\(NME-ICT) \\
\end{itemize}
\end{center}
\end{frame}

\begin{frame}
\frametitle{About the Spoken Tutorial Project}
\begin{itemize}
\item Watch the video available at {\color{blue}\url{http://spoken-tutorial.org /What\_is\_a\_Spoken\_Tutorial}} 
\item It summarises the Spoken Tutorial project 
\item If you do not have good bandwidth, you can download and watch it
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Spoken Tutorial Workshops}The Spoken Tutorial Project Team 
\begin{itemize}
\item Conducts workshops using spoken tutorials 
\item Gives certificates to those who pass an online test 
\item For more details, please write to \\ \hspace {0.5cm}{\color{blue}contact@spoken-tutorial.org}
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Acknowledgements}
\begin{itemize}
\item Spoken Tutorial Project is a part of the Talk to a Teacher  project 
\item It is supported by the National Mission on Education through  ICT, MHRD, Government of India 
\item More information on this Mission is available at: \\{\color{blue}\url{http://spoken-tutorial.org/NMEICT-Intro}}
\end{itemize}
\end{frame}

\begin{frame}

  \begin{block}{}
  \begin{center}
  {\Large THANK YOU!} 
  \end{center}
  \end{block}
\begin{block}{}
  \begin{center}
    For more Information, visit our website\\
    {\color{blue}\url{http://fossee.in/}}
  \end{center}  
  \end{block}
\end{frame}


\end{document}


