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/)
 |