DEV Community 👩‍💻👨‍💻

Cover image for Shell Scripting for Newbies 02
Augusto Zanella Bardini
Augusto Zanella Bardini

Posted on • Updated on

Shell Scripting for Newbies 02

Variables

With simple variables, you can...

  • save values using =
  • find those values putting $ in your echo

"One Look Is Worth A Thousand Words"

#/bin/bash

var="Yes, did it!"
echo "Have you done it? $var"
Enter fullscreen mode Exit fullscreen mode

The result of running this script is:

Have you done it? Yes, did it!
Enter fullscreen mode Exit fullscreen mode

Talking to the user

But let's do something useful with this concepts. Imagine you can only show the date for the user if he knows the secret password! You might want to ask him the password, so do it by using the command read.

Then, if the user type the easiest ever right password "dog", the date is shown, otherwise, the program is closed. Let's have a look at the code before anything.

#/bin/bash

echo "What's THE SECRET PASSWORD?"

#Puts the user's answer in the variable answer
read answer

#If answer is dog dog, print date!
test "$answer" == "dog" && date
Enter fullscreen mode Exit fullscreen mode

Now, gotta understand it:

  • The operator == means equals to
  • The operator && means and

As we had already saved the user's answer in the variable $answer with the command read, when we compare the variable $answer to "dog", if they are the same, it prints the date; else, it finishes the program (because there are no more commands to execute).

Therefore, the result of the script must be both below:

With the right password:

What's THE SECRET PASSWORD?
dog
Ter Jul 17 23:32:39 -03 2018
Enter fullscreen mode Exit fullscreen mode

With the wrong password:

What's THE SECRET PASSWORD?
cat
Enter fullscreen mode Exit fullscreen mode

I'm not convinced!

So let's crack this code a bit more!

#/bin/bash

echo "What's THE SECRET PASSWORD?"

#Puts the user's answer in the variable answer
read answer

#REVERSE LOGIC!
#If answer is not dog, exit; Else, print date!
test "$answer" != "dog" && exit
date
Enter fullscreen mode Exit fullscreen mode

Stuff is different here:

  • The operator != means different

Now we use the reverse logic to do the same thing. This time, the command exit can only happen if the user's answer is different from "dog". Otherwise, it will continue running the script and eventually reach the command date.

The result is exactly the same as in the previous script!

About

You can find all my scripts in my github!

Follow me for more articles!

Top comments (1)

Collapse
 
svk1996 profile image
idnt.knw.myslf • Edited on

Hi ,
I have a small requirement using shell script in Linux.
i) Connect to postgres DB.
ii) Run a sql script.

Please can help me out to do this.

DEV

Thank you.

 
Thanks for visiting DEV, we’ve worked really hard to cultivate this great community and would love to have you join us. If you’d like to create an account, you can sign up here.