Top 47 Shell Scripting Interview Questions You Must Prepare 24.May.2024

Shell scripting is used to program command line of an operating system. Shell Scripting is also used to program the shell which is the base for any operating system. Shell scripts often refer to programming UNIX. Shell scripting is mostly used to program operating systems of windows, UNIX, Apple, etc. Also this script is used by companies to develop their own operating system with their own features.

Code in the script (Shell is interpreted) as shell is a interpreter where as editor is not interpreter certain set of commands(predefined) are used to handle editor.

Environment variables are set at the login time and every shell that starts from this shell gets a copy of the variable. When we export the variable it changes from an shell variable to an environment variable and these variables are initiated at the start of the shell

This is the way to read values into your shell script variables from keyboard input.

  #!/bin/bash
read name
echo "Hello $name"

Graphical user interface provided the much needed thrust for controlling a computer and its applications. This form of language simplified repetitive actions. Support for different applications mostly depends upon the operating system. These interact with menus, buttons, etc.

Sourcing commands help you to execute the scripts within the scripts. For example sh command makes your program to run as a separate shell. .command makes your program to run within the shell. This is an important command for beginners and for special purposes.

The non login shell files are initialized at the start and they are made to run to set up variables. Parameters and path can be set etc are some important functions. These files can be changed and also your own environment can be set. These functions are present in the root. It runs the profile each time you start the process.

Variables can be defined by the programmer or developer they specify the location of a particular variable in the memory. There are two types of shells they are System variables and user defined variables. System variables are defined by the system and user defined variables are to be defined by the user (small letters).

function-narne() { #some code here return }.

Shell can make your debugging process easier because it has lots of commands to perform the function. For example sh –n command helps you to perform debugging. It helps you to read the shell but not to execute it during the course. Similarly sh –x command helps you by displaying the arguments and functions as they are executed.

-s filename tells you if the file is not empty,
-f filename tells you whether the argument is a file, and not a directory,
-d filename tests if the argument is a directory, and not a file,
-w filename tests for writeability,
-r filename tests for readability.
-x filename tests for executability

There are many situations where typing errors can prove to be a real costly effort. For example a single extra space can convert the functionality of the program from deleting the sub directories to files deletion. cp, cn, cd all resemble the same but their actual functioning is different. Misdirected > can delete your data.

They are process IDs given to processes. A PID can vary from 0 to 65535.

"rm" removes each specified file argument (provided that it is a valid path name). If you specify either . or .. as the final component of the path name for a file, rm displays an error message, and moves onto the next file. If you specify a file you do not have write permission for, rm asks you for confirmation.

Echo command is used to display the value of a variable. There are many different options give different outputs such as usage c suppress a trailing line, r returns a carriage line, -e enables interpretation, r returns the carriage.

Major disadvantage of using shell scripting is slow execution of the scripts. This is because for every command a new process needs to be started. This slow down can be resolved by using pipeline and filter commands. A complex script takes much longer time than a normal script.

Every program whether on UNIX or Linux should end at a certain point of time and successful completion of a program is denoted by the output @If the program gives an output other than 0 it defines that there has been some problem with the execution or termination of the problem. Whenever you are calling other function, exit command gets displayed.

if {condition} then {staternent} elif {condition} {statement} fi.

Shebang is nothing but a # sign followed by an exclamation. This is visible at the top of the script and it is immediately followed by an exclamation. To avoid repetitive work each time developers use shebang. After assigning the shebang work we pass info to the interpreter.

tests for logical not, -a tests for logical and, and -o tests for logical or.

There are many advantages of shell scripting some of them are, one can develop their own operating system with relevant features best suited to their organization than to rely on costly operating systems. Software applications can be designed according to their platform.

case { variable} in {possible-value-1} {statement} ;; {possible-value-2}) {statement};; esac.

while {condition} do {statement} done.

Login shell is very useful as it creates an environment which is very useful to create the default parameters. It consists of two files they are profile files and shell rc files. These files initialize the login and non login files. Environment variables are created by Login shell.

There are many disadvantages of shell scripting they are

  • Design flaws can destroy the entire process and could prove a costly error.
  • Typing errors during the creation can delete the entire data as well as partition data.
  • Initially process is slow but can be improved.
  • Portbility between different operating system is a prime concern as it is very difficult to port scripts etc.

for {variable name} in {list} do {statement} done.

Return code is a common feature in shell programming. These return codes indicate whether a particular program or application has succeeded or failed during its process. && can be used in return code to indicate which application needs to be executed first.

These are known as standard input, output and error. These are categorized as 0, 1 and @Each of these functions has a particular role and should accordingly functions for efficient output. Any mismatch among these three could result in a major failure of the shell.