Tải bản đầy đủ (.pdf) (18 trang)

Module Linux essentials - Module 9: Basic scripting

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (69.84 KB, 18 trang )

Module 9
Basic Scripting

This slide deck is for LPI Academy instructors to use for lectures for LPI Academy courses.
©Copyright Network Development Group 2013.


Exam Objective
3.3 Turning Commands into a
Objective Summary
Script


Basic Text Editing



Basic Shell Scripting

This slide deck is for LPI Academy instructors to use for lectures for LPI Academy courses.
©Copyright Network Development Group 2013.


Text Editors

This slide deck is for LPI Academy instructors to use for lectures for LPI Academy courses.
©Copyright Network Development Group 2013.


A script is a sequence of
commands










If you can type it on the command line, it
can be scripted
You can branch based on tests and loop
over collections
This is all available from the command
line, too
Scripts are repeatable and consistent and
free you to do more interesting work
This slide deck is for LPI Academy instructors to use for lectures for LPI Academy courses.
©Copyright Network Development Group 2013.


Editors




Scripts are text files
LibreOffice will add formatting, making it
unusable




nano and vi / vim are popular editors



Of the two, nano is far easier to use

This slide deck is for LPI Academy instructors to use for lectures for LPI Academy courses.
©Copyright Network Development Group 2013.


nano








Type as normal, use arrow keys to move
around
Most commands are Control + another
character
Context sensitive commands are at the
bottom of the screen, e.g. ^X to exit, ^W to
find
^G gets you help anywhere
This slide deck is for LPI Academy instructors to use for lectures for LPI Academy courses.
©Copyright Network Development Group 2013.



shebang

This slide deck is for LPI Academy instructors to use for lectures for LPI Academy courses.
©Copyright Network Development Group 2013.


#!




#! is the shebang (hash + bang)
Tells the kernel what shell interpreter to
use to run the script



Must be on the first line



#!/bin/sh



#!/usr/bin/ruby




Lets you run the script with ./script no
matter which shell the user has
This slide deck is for LPI Academy instructors to use for lectures for LPI Academy courses.
©Copyright Network Development Group 2013.


Working with Variables

This slide deck is for LPI Academy instructors to use for lectures for LPI Academy courses.
©Copyright Network Development Group 2013.


Variables


Temporary storage of data in memory



Assigning (no $):





FOO=“hello”




CWD=`pwd`



BAR=“Hello $NAME”

Using (need a $):


$FOO



echo “Hello $NAME”

This slide deck is for LPI Academy instructors to use for lectures for LPI Academy courses.
©Copyright Network Development Group 2013.


Special Variables


$1..$9 are the arguments to the script



./test.sh hello there # $1=“hello” $2=“there”






$? is the exit code of the last command to
be run
use “exit 1” to exit your own script with
error code 1

This slide deck is for LPI Academy instructors to use for lectures for LPI Academy courses.
©Copyright Network Development Group 2013.


Working with Conditionals

This slide deck is for LPI Academy instructors to use for lectures for LPI Academy courses.
©Copyright Network Development Group 2013.


Conditionals
if something; then
do this
fi
if something; then
do this
elif something else;
then

# something returns
an exit code. If it is 0,
then “do this” will be
executed up until fi

# alternative syntax,
allows for multiple
tests and a default
option if you want

This slide deck is for LPI Academy instructors to use for lectures for LPI Academy courses.
©Copyright Network Development Group 2013.


tests
test –f /tmp/foo

# test if file exists

test ! –f /tmp/foo # test if file doesn’t exist
test $A –eq 1

# is $A = 1 (numeric)

test “$B” = “Hello” # string comparison
test $A –lt 10

# $A < 10?

alternatively, [ is the same as test:
if test –f /tmp/foo; then # it works

This slide deck is for LPI Academy instructors to use for lectures for LPI Academy courses.
©Copyright Network Development Group 2013.



Case
case ”$GREETING" in
hello|hi)
echo "hello yourself"
;;
goodbye)
echo "nice to have met you"
echo "I hope to see you again"
;;

This slide deck is for LPI Academy instructors to use for lectures for LPI Academy courses.
©Copyright Network Development Group 2013.


Loops

This slide deck is for LPI Academy instructors to use for lectures for LPI Academy courses.
©Copyright Network Development Group 2013.


The for loop


Operates over a fixed set of items or a
glob

NAMES=“Alice Bob Charlie”
for N in $NAMES; do
echo “Hello $N”

done
for FILE in *; do
ls –l $FILE

This slide deck is for LPI Academy instructors to use for lectures for LPI Academy courses.
©Copyright Network Development Group 2013.


While loops


Tests the loop condition each time

while [ ! –f /tmp/foo ]; do
try_to_make_foo # makes /tmp/foo on
success
sleep 1 # wait 1 sec
done


Used when the number of loops is
unknown or changes each loop

This slide deck is for LPI Academy instructors to use for lectures for LPI Academy courses.
©Copyright Network Development Group 2013.



×