Top 21 Linux Shell Scripting Interview Questions You Must Prepare 14.Jun.2024

In Linux like Operating system “/bin/bash” is the default login shell which is assigned while user creation. We can change default shell using the “chsh” command.

Example is shown below:

# chsh <username> -s <new_default_shell>

# chsh linuxtechi -s /bin/sh

Comments are the messages to yourself and for other users that describe what a script is supposed to do and how its works. To put comments in your script, start each comment line with a hash sign (#).

Example is shown below:

#!/bin/bash

# This is a command

echo “I am logged in as $USER”

Test command is used to compare numbers in if-then statement.

Example is shown below:

#! /bin/bash

x=10

y=20

if [ $x -gt $y ]

then

echo “x is greater than y”

else

echo “y is greater than x”

fi

The break command is a simple way to escape out of a loop in progress. We can use the break command to exit out from any loop, including while and until loops.

Test command is used to perform different test on the files. Basic test are listed below:

Test: Usage

  • -d file_name: Returns true if the file exists and is a directory.
  • -e file_name: Returns true if the file exists.
  • -f file_name: Returns true if the file exists and is a regular file.
  • -r file_name: Returns true if the file exists and have read permissions.
  • -s file_name: Returns true if the file exists and is not empty.
  • -w file_name: Returns true if the file exists and have write permissions.
  • -x file_name: Returns true if the file exists and have execute permissions.

Basic Syntax of for loop is given below:

for variables in list_of_items

do

command1

command2

….

last_command

done

The do-while statement is similar to the while statement but performs the statements before checking the condition statement.

The following is the format for the do-while statement:

do

{

statements

} while (condition)

Using the chmod command we can make a shell script executable.

Example is shown below :

# chmod a+x myscript.sh

A shell script can be debug if we execute the script with ‘-x’ option ( sh -x myscript.sh). Another way to debug a shell script is by using ‘-nv’ option (sh -nv myscript.sh).

Use the below Syntax to use bc in shell script.

Variable=`echo “options; expression” | bc`.

The following table lists the special variables set by the Bourne shell for command line arguments.

Special Variables: Holds

  • $0: Name of the Script from the command line
  • $1: First Command-line argument
  • $2: Second Command-line argument
  • …..
  • …….
  • $9: Ninth Command line argument
  • $#: Number of Command line arguments
  • $*: All Command-line arguments, separated with spaces

Test command is used to compare the text strings. The test command compares text strings by comparing each character in each string.

A Shell Script is a text file that contains one or more commands. As a system administrator we often need to issue number of commands to accomplish the task, we can add these all commands together in a text file (Shell Script) to complete daily routine task.

There are two ways to perform arithmetic operations:

  1. Using expr command (# expr 5 + 2).
  2. Using a dollar sign and square brackets ( $[ operation ] ) Example : test=$[16 + 4] ; test=$[16 + 4].

There two methods to redirect std output and std error to the same location:

Method:1 2>&1 (# ls /usr/share/doc > out.txt 2>&1 )

Method:2 &> (# ls /usr/share/doc &> out.txt )

‘read’ command reads in data from the terminal (using keyboard). The read command takes in whatever the user types and places the text into the variable you name.

Example is shown below:

# vi /tmp/test.sh

#!/bin/bash

echo ‘Please enter your name’

read name

echo “My Name is $name”

# ./test.sh

Please enter your name

LinuxTechi

My Name is LinuxTechi

Like the for loop, the while loop repeats its block of commands a number of times. Unlike the for loop, however, the while loop iterates until its while condition is no longer true.

The basic syntax is :

while [ test_condition ]

do

commands…

done

A function is simply a block of of code with a name. When we give a name to a block of code, we can then call that name in our script, and that block will be executed.

Example is shown below:$ disk usage () { df -h ; }

In a shell script we can use two types of variables:

  • System defined variables
  • User defined variables

System defined variables are defined or created by Operating System (Linux) itself. These variables are generally defined in Capital Letters and can be viewed by “set” command.

User defined variables are created or defined by system users and the values of variables can be viewed by using the command “echo $<Name_of_Variable>”.

‘unset’ command is used to de-assign or unset a variable.

Syntax is shown below:

# unset <Name_of_Variable>

The continue command is identical to break command except it causes the present iteration of the loop to exit, instead of the entire loop. Continue command is useful in some scenarios where error has occurred but we still want to execute the next commands of the loop.