Shell Scripting

  • April 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Shell Scripting as PDF for free.

More details

  • Words: 808
  • Pages: 7
10/2/2007

Net212

SHELL PROGRAMMING WITH BASH

Intro ƒ The difference between tcsh and bash is not 

so noticeable à It is apparent when writing shell scripts

ƒ What is a shell script? Wh  i     h ll  i ? à Set of commands that are executed from a file à Flow of execution can be controlled

Shell script anatomy ƒ Beginning à #!/bin/bash

ƒ Body à #this is a remark or comment à grep $1 /etc/passwd

ƒ File attributes à ‐rwxrwxr‐x 1 student student 31 Sept 21 18:15 

printinfo.sh

1

10/2/2007

Making a script 1. Open new file à

vi  printinfo.sh

2. Put in beginning (specify shell) à

#!/bin/bash / /

3. Put in body (commands and structures) à

grep $1 /etc/passwd

4. Save file à

Esc , :wq

5. Make it executable à

chmod a+x printinfo.sh

Executing it ƒ If it’s not in your path à /path/to/script/printinfo.sh student

ƒ If it’s in your path à printinfo.sh student

ƒ If it’s not in your path and in your current 

folder à ./printinfo.sh student

Script arguments ƒ grep $1 /etc/passwd à $1 stands for first argument à $2 would be the second argument and so on… à $0 is the script name

ƒ Expand last example à grep $1 /etc/passwd à grep $1 /etc/passwd | cut –f $2 –d “:” à echo thank you for using script $0

ƒ Use it à à à à

./printinfo.sh student 3 student:x:500:500:student:/home/student:/bin/bash 500 Thank you for using script ./printinfo.sh

2

10/2/2007

Another example ƒ Last example printed username from passwd

file and its uid ƒ How about an account creation script à #!/bin/sh à useradd $1 à passwd $1

ƒ Save it as mkuser.sh and run it à ./ ./mkuser mkuser linuxguy à Changing password for linuxguy

Another example  ƒ Save process list à #!/bin/bash à ps –U $USER > processes.txt à chmod h d a+x listprocess.sh li t h à ./listprocess.sh

Control the execution flow ƒ Use if statements à If (condition is true) à Statements

ƒ Use while loops hl l à While(condition is true) à Statements

3

10/2/2007

If statements ƒ Does a file exist? à if [ ‐f /etc/inittab ] #if [condition] à then ‚ echo yes #statements h    # t t t à fi #end if

ƒ Run it à chmod a+x checkinittab.sh à ./checkinittab.sh à yes

Variables ƒ Argument variables à $0, $1, $2,…

ƒ Internal variables à myvar=“/bin/bash” à avalue=`grep student /etc/passwd | cut –f  7 –d “:”`

ƒ Back quotes are for command results!!! à cnt=`ls | wc –l` Å same key as tilde! à cnt=‘ls | wc –l’  <‐ Same key as double quote

Variables with if ƒ Check if anything in current folder à cnt=`ls | wc –l` à if [ $cnt –gt 0] #is count greater than zero? à then #yes it is h  #  i  i à echo there are files here à else #no it isn’t à echo no files here à fi

4

10/2/2007

Conditional operators ƒ Operators for numbers à ‐gt Greater than à ‐eq Equal to à ‐lt l less than l  h à ‐ne  Not equal to

ƒ Operators for words and sentences (strings) à =  equal à !=  not equal

Another if example ƒ Check if .bash_profile exists à bashfile=“.bash_profile” #a string variable à if [ `ls –a .bash_profile` = “$bashfile” ] à then h à echo it exists à else à echo it’s not there à fi

Sum up variable usage ƒ Numbers do not use double quotes à à à à

Mynum=10 if [ $Mynum –lt 11 ] Echo $Mynum is less than 11 Fi

ƒ Strings do use double quotes à à à à

Mystr=“david” if [ “$Mystr” != “david” ] echo This is not david fi

5

10/2/2007

Sum up if statements ƒ For comparing values à à à à

if [ value1 operator value2 ] then statements fi

ƒ For checking the exit code  à à à à

if some command here then #do this if exit code is 0 statements fi

Exit codes ƒ Also known as an exit status code à type echo $? echo $? To see the last exit code

ƒ Status code 0 means success à ls /etc/issue à echo $? à 0

ƒ Status code 1 means failure à ls /etc/issues à echo $? à 1

While statements ƒ Do something until condition is false à Uses same conditional expressions as if

ƒ Ex: Create 10 files à à à à à à à

Stoppoint=11 i=1 while [ $i ‐lt $Stoppoint ] do touch myfile$i i=$[$i+1] done

6

10/2/2007

Another while example ƒ Read input from a pipe à ls | while read file à do à echo $USER has file $file h   USER h  fil   fil à done

ƒ Results à student has file myfile1 à student has file myfile2 à ….

7

Related Documents

Shell Scripting
April 2020 7
Shell Scripting
November 2019 24
Shell Scripting
November 2019 25
Shell-scripting
November 2019 27
Shell Scripting
June 2020 7
Linux Shell Scripting
April 2020 6