Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.
For the best experience please use the latest Chrome, Safari or Firefox browser.
CIS 225
Lecture 7: Scripting and Automation 1
Building Shell Scripts
Open a new file using a text editor
$ nano script.sh
      
Add the following header at the top
#!/bin/bash
    Building Shell Scripts
Input commands below (1 per line)
cd ~/bin
ls -al
      
Save the file (CTRL + X) and run
$ chmod u+x ./script.sh
$ ./script.sh
    Shell Hello World
#!/bin/bash
echo "Hello World"
exit 0
    Shell Hello World
echo "Hello World"
      echo prints text
exit 0
      exit stops the command
Simple Script
#!/bin/bash
#batman.sh
if (( $# < 1 || $# > 1 )); then
  echo "Usage: batman.sh <name>"
  exit 1
fi
if [ "$1" = "Batman" ]; then
  echo "Hello Mr. Wayne"
elif [ "$1" = "Robin" ]; then
  echo "Welcome back Mr. Grayson"
else
  echo "Intruder alert!"
fi
exit 0
    Shell Script Parameters
$1 - First Parameter
$2 - Second Parameter
...
${10} - Tenth Parameter
${11} - Eleventh Parameter
$# - Number of Parameters
$* - All Parameters (as String)
    Conditionals
if (( $# < 1 || $# > 1 )); then
      Douple parens for arithmetic evaluation
if [ "$1" = "Batman" ]; then
      Square brackets for logical test
(using Linux 'test' command)
Loop Script
#!/bin/bash
#listfiles.sh
files=`ls $* 2> /dev/null`
for afile in "$files"; do 
    echo "$afile"
done
exit 0
    Loops
files=`ls $* 2> /dev/null`
      Declares a new variable $files
Backticks (`) get output of command
for afile in "$files"; do
      Perfom commands below once for each item in $files
Environment Variables
Stores information about the system that can be used in scripts
$ printenv
      Prints the current environment variables
PATH Variable
Tells your system where to look for binary files and scripts
$ export PATH=$PATH:$HOME/bin
      Add a folder to the path
(Add this line to ~/.bashrc to make it permanent)
Building PowerShell Scripts
Open the PowerShell ISE (search for it on the Start menu)
You can also use a text editor such as Notepad
To be able to run them, open an Administrative Powershell and enter "Set-ExecutionPolicy Unrestricted"
PowerShell Scripts
Write-Host "Hello World"
return
    PowerShell Parameters
Param(
  [string]$computerName,
  [string]$userName
)
    Simple Script
Param(
  [string]$user
)
if ( -not ($user)){
  Write-Host "Usage: batman.ps1 <name>"
  return
}
if ($user.CompareTo("Batman") -eq 0){
  Write-Host "Hello Mr. Wayne"
}else{ 
    if ($user.CompareTo("Robin") -eq 0){
        Write-Host "Welcome back Mr. Grayson"
    }else{
      Write-Host "Intruder alert!"
    }
}
return
    Loop Script
param(
  [string]$path
)
$files = Get-ChildItem $path
foreach($file in $files){
    Write-Host $file.name
}
    Environment Variables
Control Panel > System and Security > System > Advanced System Settings > Environment Variables
Add a new variable called PATH to the user variables and give it the value "C:\Users\cis225\bin"
Reading
Assignments