Scripting for Beginners
Tags: career, bash
Published: 2020-07-07 09:19:57

The scripting language is a language where instructions are provided for a run time environment. Scripting languages are an integral part of the engineering teams in enterprises. They are often used in many areas, other than the server-side and client-side applications; scripting languages are well suited in system administration. Some notable examples of scripts used in system administration include Shell, Perl, and Python.

With shell scripting, you can automate the tasks which consume a lot of time. Shell scripting is a way for you to save a lot of time and focus on the things that matter rather than wasting time on unnecessary time consuming repetitive tasks.

##History of the Shell

There was a shell program by the name the V6 Shell starting with Unix in the 1970s developed by Ken Thomson. It lacked scripting ability for developers and was then followed by the Bourne Shell in 1977, and it is still in use as the default shell for the root account; this added scripting abilities that proved extremely useful for developers. 

Further, there were many improvements made in the 1980s and gave rise to many popular shell variants like C-Shell and Korn Shell, the important ones. These Shell scripts had their own syntax, which was, in some instances, completely different from the original shell. Bash Shell is the most popular shell today, and Bash stands for Bourne-Again-Shell and is the finest improved variant of the original Bourne Shell.

###What are Shell scripts?

* Shells are interactive, they accept the command as an input from users and execute them. Shell can also take commands from a file; we can write these desired commands in a file and can easily execute them in shell to avoid repetitive work. Such files are called Shell Scripts or also called Shell Programs. Shell scripts are more or less similar to the [batch file](https://en.wikipedia.org/wiki/Batch_file) in MS-DOS. Every shell script is saved by .sh file extension. For example, myscript.sh

* Just like any other programming language, a shell script has syntax. It would be very easy and effortless to get started if you have prior experience with programming languages like C/C++, Python, etc.

* A shell script involves the following basic elements –
Shell Keywords – if, else, break, etc.
Shell commands – cd, ls, echo, pwd, touch etc.
Functions
Control flow – if..then..else, case and shell loops, etc.

* When it comes to server-side, the scripting languages include JavaScript, Perl, PHP, etc. and client-side scripting languages include JavaScript, jQuery, AJAX, etc. Scripting languages are mainly used in system administration and by developers to automate their day to day repetitive tasks. In such cases, languages like Shell, Python scripts, and Perl, etc help them a lot.

####Here are the few reasons why you should use the scripts:

* To avoid manual work, to initialize something at boot time of the system, you can write the script, and it saves a lot of time.

* To install pre-requisite and to build the code with user input to enable/disable some features, you can write a script that does all the work for you.

* Anything from killing or starting multiple applications together, scripts come handy.

* Even when you have to observe a large database of files, analyze and find some patterns out of it, you can use scripts.

* To automate any mundane task in your day to day activities, you can write scripts.

* According to the recent [Stack Overflow survey](https://insights.stackoverflow.com/survey/2020#technology-what-languages-are-associated-with-the-highest-salaries-worldwide), Bash/Shell/PowerShell is one of the languages that is associated with the highest salaries around the world.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/do5vnelkvlpm3kesc16l.png)
Image credits: Stack Overflow survey

* Bash/Shell/PowerShell is among one of the top 10 most popular technologies as per the [Stackoverflow insight data](https://insights.stackoverflow.com/survey/2019#technology) derived from over 80K responses in the recent survey.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/4ah3zencodh1v8dpavvb.png)
Image credits: Stack Overflow insights data

####Scripting language use cases and examples

Scripting is widely used by developers to automate tasks within an operating system, to enhance web pages within browser software, etc.

Javascript is a scripting language that can be used to inject logic into the webpages and they don’t need to be compiled like Java or C.

Python is a scripting language that can be used to run any kind of automation with few lines of code and that is one reason why DevOps people think Python fits really well into the DevOps space.

These days, scripting languages are generally associated with web development, where they are extensively used to make dynamic web applications that result in smooth user experience.

WordPress sites are very good examples of where scripting languages come into action. A PHP script makes it simply possible to have your three or four latest blog posts automatically appear on a website’s homepage.

The visitor viewing the site will not have any clue and doesn’t see the script or its backend process; they just see the end result, a smooth user experience. Rather than hand-coding each and every single instance and outcome of a dynamic function, the site’s developer is able to implement such features with only a one-time set of instructions.

Another modern example can be, say there is an automated deploy task you want to run on a GitHub repository, bash script can be used inside GitHub actions. When a commit happens, it can ssh into a machine, fetch the latest code, and serves it.

####Conclusion
Scripting languages are more crucial than ever. DevOps practitioners are required to know a scripting language to save themselves some valuable time. The automation world mostly relied on scripting languages and is heavily used in software development and making things fast. 

Learning a scripting language is the best way to get your hands dirty in the coding world as well as in the DevOps industry. There is a scarcity of talented DevOps professionals who know the scripting languages. Just remember, the scripting language is a must and will be there until there is software running the world.

People might assume that they need an in-depth knowledge of languages, such as Python or C, or even Java, for higher functionalities, but that’s not fundamentally true. The Bash scripting language is sometimes more than enough, it is compelling. There is a lot to learn to maximize its worth and usefulness when it comes to system administration and DevOps.

Learn more about Shell Scripting in our ‘[Shell Scripts for Beginners](https://kodekloud.com/p/shell-scripts-for-beginners)’ course!

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/os27ai9823a8kdnl84dh.gif)