50 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
title: Shell scripting
 | 
						|
---
 | 
						|
 | 
						|
# Shell Scripting
 | 
						|
 | 
						|
In the command line, a shell script is an executable file that contains a set of instructions that the shell will execute. Its main purpose is to reduce a set of instructions (or commands) to just one file. Also, it can handle logic because it's also an interpreter.
 | 
						|
 | 
						|
## How to Create a Shell Script
 | 
						|
 | 
						|
1. Create the file:
 | 
						|
```bash
 | 
						|
$ touch myscript.sh
 | 
						|
```
 | 
						|
 | 
						|
The file extension is not necessary.  In linux, scripts can be executed even without .sh extension.
 | 
						|
 | 
						|
If the file is stored in `/user/bin` then the script should be able to be run from anywhere, provided the path is included in the `$PATH` variable.
 | 
						|
 | 
						|
2. Add a [shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)) (`#!`) to the start of the file. The shebang line is responsible for letting the command interpreter know which interpreter the shell script will be run with.
 | 
						|
 | 
						|
```bash
 | 
						|
$ echo "#!/bin/bash" > myscript.sh
 | 
						|
# or
 | 
						|
$ your-desired-editor myscript.sh
 | 
						|
# ---------- myscript.sh ------
 | 
						|
#!/bin/bash
 | 
						|
...
 | 
						|
# -----------------------------
 | 
						|
```
 | 
						|
 | 
						|
3. Add commands to the file:
 | 
						|
```bash
 | 
						|
$ echo "echo Hello World!" >> myscript.sh
 | 
						|
```
 | 
						|
 | 
						|
4. Give the file _execution_ mode:
 | 
						|
```bash
 | 
						|
$ chmod +x myscript.sh
 | 
						|
```
 | 
						|
 | 
						|
5. Execute the script!
 | 
						|
```bash
 | 
						|
$ ./myscript.sh
 | 
						|
Hello World!
 | 
						|
```
 | 
						|
 | 
						|
## Additional Resources
 | 
						|
- [More info about shell-scripting](https://www.shellscript.sh/)
 |