0% found this document useful (0 votes)
45 views23 pages

Bash Shell Scripting Guide

This document provides an introduction to Bash shell scripting. It outlines key concepts like the shell, interpreter, commands, variables, expressions, conditions, loops, and input/output. It also describes useful Unix tools like awk, grep, sed and find. The document concludes by recommending ways for readers to start learning shell scripting and provides examples of shell scripts for automating tasks.

Uploaded by

Dodo winy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
45 views23 pages

Bash Shell Scripting Guide

This document provides an introduction to Bash shell scripting. It outlines key concepts like the shell, interpreter, commands, variables, expressions, conditions, loops, and input/output. It also describes useful Unix tools like awk, grep, sed and find. The document concludes by recommending ways for readers to start learning shell scripting and provides examples of shell scripts for automating tasks.

Uploaded by

Dodo winy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

Shell Automation

An Introduction to
Bash Shell Scripting
Anoop John
An Outline
►Shell, interpreter, POSIX
►Shell script operation
►Commands, paths, returns
►Variables, environments
►Input, output, pipes, descriptors
►Expressions, conditions, loops
►Awk, grep, sed, find, xargs
►System utils
►Examples
Shell, Interpreter, POSIX
►Kernel, Shell
►Interprets commands
►Command Line Interpreter / Command Line
Interface
►POSIX compliance
►Sh, Bourne Again, Brian Fox, FSF
Free Software
►Unix
►GNU
►GPL - Four freedoms
►Use, Modify, Distribute, Modify &
Redistribute
►FSF
►GNU / Linux
Shell Operation
►Reads input from file, string (-c), or terminal
►Breaks the input into words and operators
►Parses the tokens into simple and compound
commands
►Performs the various shell expansions
►Performs any necessary redirections
►Executes the command
►Optionally waits for the command to complete
and collects its exit status
Commands
►Executables (ls)
►Shell commands (cd, exit, pwd)
►Return values
►Command input
►Command output
►Path
►Which
Variables & Environment
►Setting a Variable
►Environment (context)
►Script
►Eval
►Exec
►Source .
►Strings, integers, arrays
►Quoting - single, double, escaping
►Global, local
Shell Script
#!/bin/bash
echo “Hello World”;
name=Anoop
echo “Hello $name”
exit;
Arguments & Functions
►Shell Scripts
►Shell Arguments
►Functions
►Function Arguments
Shell Function
function log {
  if [ $# ­gt 0 ]; then
    echo "[$(date +"%D %T")] $@" >> $LOG_FILE
    db "$@"
  else 
    while read data
    do
      echo "[$(date +"%D %T")] $data" >> 
$LOG_FILE 
      db "$data"
    done
  fi
}
log “Hello World!”
echo “Hello World!” | log
Input & Output
►Stdin
►Stdout
►Pipes
►Descriptors
Expressions
►Assignment =
►Arithmetic +, -, *, /, **,
►Bitwise <<, >>, |, &, ~, ^
►Logical !, &&, ||
►Comparisons - Arithmetic -eq, -ne, -lt, -gt, le
►Comparisons - String =, !=, <, >, <=
►Filesystem - -e, -f, -d, -x
If Command
if [[ expression ]] then
  commands;
elif [[ expression ]] then
  commands;
else
  commands;
fi
Case Command
case $ANIMAL in
  horse | dog | cat) 
    echo ­n "four"
    ;;
  man | kangaroo ) 
   echo ­n "two"
   ;;
  *) 
   echo ­n "an unknown number of"
   ;;
esac
For Loop
for NAME [in LIST ]; do 
  COMMANDS; 
done

i=0
for filename in `ls`; do 
  i=$(( i + 1));
  printf "%­5s ­ %s\n" $i “$filename”;
done;

for name in Anoop John; do 
  echo “Hello ${name}”;
done;
While Loop
while [[ expression ]]; do 
  COMMANDS; 
done

i=0; while [[ $i ­lt 10 ]]; do
  echo Counting $i;
  ((i+=1));
done;

while read line
do
  echo $line
done < path/to/file
Shell Swiss Army Knives
►awk
►sed
►grep
►find
►xargs
►cat, less, tail, head, watch
Useful Commands
►ps
►top
►kill
►dmesg
►curl, wget
►chown, chmod, chgrp
►uptime, top, nice, nohup
Getting help
►man
►help
►command --help
►Reading scripts
►Mailing lists
►User groups
►Local community
►Search the web
How to Start
►Get GNU / Linux installed on your systems
►Start using shell
►Identify pain points in your daily operations
►Automate through scripts
►Join a mailing list
►Ask & answer questions
►Show off :-)
Exempli Gratia
►Drupal Backups
►Asianet Autologin
►Reliance Autologin
►Secure Shared Folders
About Zyxware
►Free Software Company
►Software Development - Drupal
►Leading Drupal Contributor from India
►FSF Contributing Member
►Free Software Support in the local market
►IT Training and FOSS Enabling
►Websites & Email Services
►IT Consultancy for Enterprises
Thank You!

www.zyxware.com
[email protected]
9446-06-9446

You might also like