%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Using Linux Tools % % Author: FOSSEE % Copyright (c) 2009, FOSSEE, IIT Bombay %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass[17pt,compress]{beamer} \usepackage{beamerthemesplit} \mode { \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}