Wednesday, September 9, 2020

Shell Script Basics

 Shell Script Basics


Let us start the process in this Blog i am going to explain  Shell Script Basics and shell script  if condition statement ,else if condition statement, and or operators in bash shell 

Introduction

Shell: When ever you login to  a unix system you are placed in a program called the shell acts as a command interpreter , it takes each command and passes it to the operating system kernel to be acted upon it then displays the results of this operation on completion on your screen


DIFFERENT FLAVOURS OF SHELL IN UNIX


Bourne Shell: Bourne Shell scripts to specify the shell to use for the scripts. The default prompt on the Unix for this is $

#!/bin/bsh


C Shell:C Shell Scripts to specify the shell to use for the scripts.The default prompt on the Unix for this is %,  

#!/bin/csh


Korn Shell: Korn Shell Scripts  to specify the shell to use for the scripts.The default prompt on the Unix for this is $,

#!/bin/ksh



Shell Script: Shell Scripts collection of command which are executed in a order given. There are conditional statement and looping also available like if ,while which helps in finding if a particular value is greater than another value .


To write any comments in the shell scripts ,it has to be written with # preceded


Example


# Author of the script is


There are some variables Shell Script Basics which are set internally by the shell and which are available to the user


$1 – $9 Variables are the positional parameters.


$0 Name of the command currently being executed.


$# Number of positional arguments given to this invocation of the shell.


$? Exit status of the last command executed is given as a decimal string. When a command completes successfully, it returns the exit status of 0 (zero), otherwise it returns a non-zero exit status.


$$ Process number of this shell – useful for including in filenames, to make them unique.


$! Process id of the last command run in the background.


$* String containing all the arguments to the shell, starting at $1.


Shell scripts and functions are both interpreted. This means they are not compiled.


Commands in Shell


All shell have a number of built in command which are executed in the shell owns process like echo ,cd,  when you enter a command first it will check the built in shell command echo or cd  or it is directly interpreted by the shell,if the command begins with  / shell assumes that command is absolute path name.

unix commands are executabale binary files located in directories with the name bin (for binary) many of the commands that are located in the directory /usr/bin.



Typical path variable might be 


/bin:/usr/bin:/usr/local/utils/bin:$HOME/bin



Shell Script Example


cat chaitanya.sh


#Written by ChaitanyaOracleDbaBlog


TODAY=date '+%m%d%y_%H%M'


echo "This is Chaitanya  at" $TODAY



The Name of each script must reflect its use,and each script must have a suffix that describes the what type of script it is “.sh” for Bourne shell ,“.ksh” for Korn shell or “.cgi” for Common Gateway Interface scripts


Lets start the first shell script


#!/bin/ksh   # This script displays the date, time, username and

# current directory.

# Author Chaitanya

echo "Current date and time is:"

date

echo

echo "Your username is: `whoami` \\n"

echo "Your current directory is: \\c"

pwd echo "Your system name is :`hostname`\\n"   



How to execute the shell script 


Once the shell scripts are created ,they can be executed in two ways 


1. We specify the shell type and then the script name 


 sh  chaitanya.sh



2.We change the permission of the shell scripts to perform execution


 chmod  +x chaitanya.sh


 ./ chaitanya.sh



Bash if statement syntax


1.Bash if ...then..fi statement


if [ conditional expression ]


then

statement1

statement2

.

fi


Bash if then fi example


#!/bin/bash

count=300


if [ $count -eq 300 ]


then


  echo "The Count is 300"


fi


2. Bash if ..then..else..fi statement  syntax


If [ conditional expression ]


then

statement1

statement2

.

else

statement3

statement4

.

fi


Bash if ..then..else..fi statement  Example


#!/bin/bash


count=299


if [ $count -eq 300 ]


then


  echo " The Count is 300"


else


  echo "The Count is not 300"


fi



3. Bash If....elif...else..fi statement syntax


If [ conditional expression1 ]


then

statement1

statement2

.

elif [ conditional expression2 ]


then

statement3

statement4

.

else

statement5


fi


Bash If....elif...else..fi statement Example


#!/bin/bash


count=299


if [ $count -eq 300 ]


then


  echo "Count is 300"


elif [ $count -gt 300 ]


then


  echo "Count is greater than 300"


else


  echo "Count is less than 300"


fi


4. Bash If..then..else..if..then..fi..fi.. syntax



If [ conditional expression1 ]


then

statement1

statement2

.

else

if [ conditional expression2 ]


then

statement3

.

fi

fi


Bash If..then..else..if..then..fi..fi.. Example


#!/bin/bash


count=299


if [ $count -eq 300 ]


then


  echo " The Count is 300"

else

  if [ $count -gt 300 ]


  then


    echo "The Count is greater than 300"


  else


  echo "The Count is less than 300"


  fi


fi



Test for numbers


-eq ------->   equal to--------->   x==y


-ge-------->  greater than or equal to--->  x>=y


-gt --------> greater than    -----> x>y     


-le ---------> less than or equal to  ------>   x<=y


-lt ---------> less than------> x<y


-ne ---------> not equal to ---->   x!=y     



AND and OR  operator 


&& ------> This stand for AND condition( if both the conditions are true then whole Condition will be true)


[[ $1 == yes && -r $1.txt ]]


|| --------> This stand for OR condition (if only one Condition is true then whole Condition will be true


[[ $1 == yes || -r $1.txt ]]




Note : Info on Shell Script Basics it may be differ in your environment like production,testing,development  and naming conventions etc



THANKS FOR VIEWING MYBLOG FOR MORE UPDATES FOLLOW ME OR SUBSCRIBE ME

ITIL Process

ITIL Process Introduction In this Blog i am going to explain  ITIL Process, ITIL stands for Information Technology Infrastructure Library ...