Module Linux essentials - Module 9 introduce basic scripting. This chapter will guide how to turn commands into a script. After studying this chapter you should be able to: Basic text editing, basic shell scripting. Inviting you to refer.
Module 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 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 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 this fi if something; then 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 # is $A = (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; echo “Hello $N” done for FILE in *; 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 ]; try_to_make_foo # makes /tmp/foo on success sleep # wait 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 ...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