2. Agenda
In this part of presentation, We will cover…
• Introduction to shell programming,
• How to read/write/execute a script.
3. Assumptions
Before starting with this you should know-
• How to use text editor such as vi/vim,
• Basic Linux commands.
December 15
4. What is SHELL ?
December 15
• Shell is just an interface to access an operating
system
• Shell reads command from user and tells Linux OS
what users want.
5. Shell
December 15
• Simply, the shell is a program that takes
your commands from the keyboard and
gives them to the operating system to
perform.
• In the old days, Shell was the only user
interface available on a Unix/Linux
computer. Nowadays, we have GUIs in
addition to the shell.
6. Some commands to play with shell
December 15
Tip: To find all available shells in your system type following command:
$ cat /etc/shells
Note that each shell does the same job, but each understand a different command
syntax and provides different built-in functions.
****In MS-DOS, Shell name is COMMAND.COM which is also used for same purpose,
but it's not as powerful as our Linux Shells are!
.
7. What is my current SHELL
December 15
Tip: To find your current shell type following command
$ echo $SHELL
Hint: Bash which stands for Bourne Again SHell, an enhanced version of the original
Bourne shell program, sh, written by Steve Bourne
Tip: To find process-id of current shell.
$ ps -p $$
10. What is Shell Script & Why should I learn scripting
??
December 15
Shell Script
basically scripts are collections of commands that are
stored in a file. The shell can read this file and act on the
commands as if they were typed at the keyboard.
We have thousands of commands available for the
command line user, Can we remember them all? The
answer is, “No”. The real power of the computer is its
ability to do the work for you. To get it to do that, we
use the power of the shell to automate things. We write
scripts.
11. What are scripts good for?
December 15
A wide range of tasks can be automated. Here are some
of the things I automate with scripts:
• On every 1st day of a month, linux-servers backup their
configurations and copy it to a “Window/Storage machine“, and
delete old backups on successful execution so that we always have
latest backup with us. This is performed by a script.
• A script on a single click automatically does health check-up on
multiple servers and reports the status with colors (Red-> Critical,
Yellow-> Warning , Green -> OK) from all servers. A sample report is
attached .(Click here to see)
• Script can sends us an email message if a process is down.
13. How to write shell script
December 15
Following steps are required to write shell script:
(1) Use any editor like vi to write shell script.
(2) After writing shell script set execute permission for your
script as follows-
Syntax:
chmod permission your-script-name
Examples:
$ chmod +x your-script-name
$ chmod +x abcd.sh
14. How to execute your script.
Execute your script as
Syntax:
bash your-script-name
sh your-script-name
ksh your-script-name
./your-script-name
Examples:
$ bash abc.sh
$ sh abc.sh
$ ./abc.sh
December 15
15. First Script
December 15
Before starting any thing , I will recommend every one to create a Linux Virtual
machine on your laptop/PC . VM will be safe for testing . Do not try any script on
production servers (If you face any difficulty while creating VM , let me know after
this session )
16. First Script
• Login to your Linux machine, create a test directory
which will hold all of our test scripts.
• In my case, I have created a directory called “test” ,
which will hold my test scripts .
December 15
17. First Script
• To create a shell script, you use a text editor.
$ vi my_script
• Press “i” to enter in “insert mode” of vi editor
December 15
18. First Script
• Write logic of your script .
• Press “Esc” key twice to exit from “insert mode”.
• Type :wq! and hit the entre key to save your script
and exit from vi-editor.
• Type “chmod +x my_script” to make it executable.
December 15
19. Explanation
#!/bin/bash
# My first script
echo "Hello World!"
echo "How are you.“
• The first line of the script is important. This is a special clue given to the
shell indicating what “shell” is used to interpret this script. In this case, it
is /bin/bash.
• The second line is a comment. Everything that appears after a "#" symbol is
ignored by bash.
• The last two lines are echo commands. This command simply prints what it
is given on the display.
December 15
20. Explanation
December 15
We just covered “echo” command ; It is used to print given text on screen , along with
this you can also use echo command to make Alarm which will makes a BEEP sound, you
can also use echo command to print text in attractive colors.
Since , this session is limited to only introduction , we will learn this options in another
session .
Colored output
Alarm with echo command
21. How to give your keyboard inputs to script ??
Read command is used to pass your keyboard inputs to script .
• Syntax:
read your-variable-name
• Examples:
$ read my_variable
Now to read the value stored in a variable use “echo” command.
• Syntax:
echo $your-variable-name (Note: “$” before variable name)
• Examples:
$ echo $my_variable
December 15
22. Second Script
• Now we will make a second script which will ask user
to give some inputs and then it will print those inputs
to screen.
#!/bin/bash
# My second script
echo “What is in your mind…."
read your_input
echo
echo "Your input was : $your_input"
December 15
23. How to hide your inputs ??
December 15
In the same direction , suppose ,script has asked you to enter your password
and you do not want it to be visible on screen while typing…. In this kind of
situation , everything will be same and you just need to put “-s” (suppress)
option with read command. .
#!/bin/bash
# My 3rd script
echo "Please enter your password"
read -s my_password
echo
echo "Yeah ! i have hacked your password : $my_password"
24. • In same direction , you can also set a timeout for
users to give there inputs, i.e. if your does not give his
input in given time then , script will stop its execution
after timeout.
• Change command read your_input to read -t 10 your_input in
the 2nd script we made in this session , and see the
difference.
$ read –t time_in_second name_of_varibale
Example read -t 10 abc (timeout after 10 seconds)
December 15
25. Echo + read = (read –p)
• As we saw in previous 2 scripts , while giving inputs to
script from keyboard we used read and echo
command in pair. We can save one line if use “-p”
(small “P”) with the read command.
$echo “What is in your mind”
$read my_input
$read –p “What is in your mind” my_input
December 15
26. Feel free to contact me
Akshay Siwal
Email :
akshay231990@gmail.com
December 15
Now some of you might be wondering what is so special about shell scripting and why do I have to use it .
There are lots of advantages that shell script provide over other programing language…. Some of them are …. Its very convenient and easy to built program in shell and it is even more convenient to debug them . Also there are 1000 of built in or supportive programs like awk , sed etc that make work easier .
If there is complicated task to perform then shell script is a quick and easy way to perform .