Our first script – Hello World
Since we have learned basic commands in the Linux OS, we will now write our first shell script called hello.sh
. You can use any editor of your choice, such as vi, gedit, nano, emacs, geany, and other similar editors. I prefer to use the vi editor:
- Create a new
hello.sh
file as follows:
#!/bin/bash
# This is comment line
echo "Hello World"
ls
date
- Save the newly created file.
The #!/bin/bash
line is called the shebang line. The combination of the characters #
and !
is called the magic sequence. The shell uses this to call the intended shell, such as /bin/bash
in this case. This should always be the first line in a shell script.
The next few lines in the shell script are self-explanatory:
- Any line starting with
#
will be treated as a comment line. An exception to this would be the first line with #!/bin/bash
- The
echo
command will print Hello World
on the screen - The
ls
command will display directory content in the console - The
date
command will show the current date and time
We can execute the newly created file with the following commands:
$ bash hello.sh
$ chmod +x hello.sh
By running any of the preceding commands, we are adding executable permissions
to our newly created file. You will learn more about file permissions later in this chapter:
$ ./hello.sh
By running the preceding command, we are executing hello.sh
as the executable file. With technique one, we passed a filename as an argument to the bash shell.
The output of executing hello.sh
will be as follows:
Hello Worldhello.shSun Jan 18 22:53:06 IST 2015
Since we have successfully executed our first script, we will proceed to develop a more advanced script, hello1.sh
. Please create the new hello.sh
script as follows:
#!/bin/bash
# This is the first Bash shell
# Scriptname : Hello1.sh
# Written by: Ganesh Naik
echo "Hello $LOGNAME, Have a nice day !"
echo "You are working in directory `pwd`."
echo "You are working on a machine called `uname -o`."
echo "List of files in your directory is :"
ls # List files in the present working directory
echo "Bye for now $LOGNAME. The time is `date +%T`!"
The output of executing hello.sh
will be as follows:
Hello student, Have a nice day !.Your are working in directory /home/student/work.You are working on a machine called GNU/Linux.List of files in your directory is :hello1.sh hello.shBye for now student. The time is 22:59:03!
You will learn about the LOGNAME
, uname
, and other similar commands as we go through the book.