Difference between revisions of "OPS235 Scripting Exercises"
(Created page with "= Things you need to know = == Terminal vs script file == A shell script is nothing more than a sequence of shell commands. Any command you put in a shell script can be exec...") |
|||
Line 1: | Line 1: | ||
− | = Things | + | = Things on this page = |
== Terminal vs script file == | == Terminal vs script file == | ||
Line 27: | Line 27: | ||
* How to redirect output from a command to a file | * How to redirect output from a command to a file | ||
* How to pipe output from one command to another command | * How to pipe output from one command to another command | ||
+ | |||
+ | == Basic commands == | ||
+ | |||
+ | * cat | ||
+ | * grep | ||
+ | * cut | ||
+ | |||
+ | == Conditional statements == | ||
+ | |||
+ | * if | ||
+ | * test, [ | ||
= Exercises = | = Exercises = | ||
+ | |||
+ | You can do these exercises in any order, and change them in any way you like. | ||
+ | |||
+ | * Create a bash script that will print Hello, then list the contents of the / directory, then print Good Bye. | ||
+ | * Create a bash script that will run your other script twice. | ||
+ | ** Run this new script from different locations, and see if it always works. Fix it if it doesn't. | ||
+ | * reate a bash script to display the contents of /etc/sysconfig/network-scripts/ifcfg-ens33 | ||
+ | ** Pipe the output to cat | ||
+ | *** Pipe that output to cat. See if you understand why that doesn't seem to do anything | ||
+ | * Create a bash script which will use cat and grep to find the line with BOOTPROTO in /etc/sysconfig/network-scripts/ifcfg-ens33 | ||
+ | * Create a bash script in which you will create a variable called BP. | ||
+ | ** Assign to that variable the value BOOTPROTO="dhcp" (the equal sign and quotes are part of the value). | ||
+ | ** Use the cut command to retrieve the part between the double-quotes (in this case that's: dhcp). | ||
+ | ** Save the result in a variable, and print that variable. | ||
+ | * Combine the two scripts above into one. The script should tell you what the value of BOOTPROTO from /etc/sysconfig/network-scripts/ifcfg-ens33 is. |
Revision as of 12:10, 10 January 2020
Contents
Things on this page
Terminal vs script file
A shell script is nothing more than a sequence of shell commands. Any command you put in a shell script can be executed just as well in a terminal. In fact no matter how complex your script is - you can run the entire thing from a terminal window without executing the script.
Runnning a command
- How to run a command in the current directory or another directory or a directory in the $PATH
- That programs you run need to have execute permission
- What your $PWD is, pwd command
- Check the return code from a command by examining $?
Variables
- How to create a variable and set a value in it
- How to get the value from a variable
Quotes
- Why use single or double quotes
- The difference between single and double quotes
- Backquotes
Redirecting output
- How to redirect output from a command to a file
- How to pipe output from one command to another command
Basic commands
- cat
- grep
- cut
Conditional statements
- if
- test, [
Exercises
You can do these exercises in any order, and change them in any way you like.
- Create a bash script that will print Hello, then list the contents of the / directory, then print Good Bye.
- Create a bash script that will run your other script twice.
- Run this new script from different locations, and see if it always works. Fix it if it doesn't.
- reate a bash script to display the contents of /etc/sysconfig/network-scripts/ifcfg-ens33
- Pipe the output to cat
- Pipe that output to cat. See if you understand why that doesn't seem to do anything
- Pipe the output to cat
- Create a bash script which will use cat and grep to find the line with BOOTPROTO in /etc/sysconfig/network-scripts/ifcfg-ens33
- Create a bash script in which you will create a variable called BP.
- Assign to that variable the value BOOTPROTO="dhcp" (the equal sign and quotes are part of the value).
- Use the cut command to retrieve the part between the double-quotes (in this case that's: dhcp).
- Save the result in a variable, and print that variable.
- Combine the two scripts above into one. The script should tell you what the value of BOOTPROTO from /etc/sysconfig/network-scripts/ifcfg-ens33 is.