Difference between revisions of "Script Course"
Line 70: | Line 70: | ||
===SED Command=== | ===SED Command=== | ||
'''The sed command is typically used to search for a certain string of text, and replaces that text string with another text string using the syntax s/search/replace/. For example, the following output demonstrates how sed can be used to search for the string “the” and replace it with the string “THE” ''' | '''The sed command is typically used to search for a certain string of text, and replaces that text string with another text string using the syntax s/search/replace/. For example, the following output demonstrates how sed can be used to search for the string “the” and replace it with the string “THE” ''' | ||
cat filename.text | sed /s/the/THE | cat filename.text | sed /s/the/THE | ||
'''Notice from the preceding output that sed only searched for and replaced the first occur- rence of the string “the” in each line. To have sed globally replace all occurrences of the string “the” in each line, simply append a g to the search-and-replace expression:''' | |||
cat prologue | sed s/the/THE/g | |||
=[[Bash| Bash menu]]-[[Main_Page| Home]]= | =[[Bash| Bash menu]]-[[Main_Page| Home]]= |
Revision as of 17:26, 7 April 2019
File Operators Tests
- -d File True if file is a directory
- -e File True if file exists
- -f File True if file exists and is a regular file
- -r File True if file is readable by you
- -s File True if file exist and is not empty
- -w File True if the file is writable by you
- -x File True if the file is executable by you
- -z String True if string is empty
- -n String true if string is not empty
Syntax
[condition to test for]
Example
[ -e /etc/passwd ] -e True if file exists
Exit Status return codes
- Every command returns an exit status
- range from 0 - 255
- 0 = success
- Other than 0 = error condition
- use for error checking
$? Contains the return code of the previously executed command
ls /not/here echo "$?"
-
HOST = "google.com" ping -c 1 $HOST if [ "$?" -eq "0" ] then echo "$HOST reachable." else echo "$HOST unreachable" fi
' And and || or
- && = And : if first fails the other won't be executed
mkdir /tmp/bak && cp test.txt /tmp/bak/
- || OR - if one fails the other will be processed
cp test.txt /tmp/bak || cp test.txt /tmp
Redirection
redirect to non error using status code 1 to filename goodoutput
ls /etc 1>goodoutput ls /etc > 2>badoutput
Redirect both at the same time
ls /etc >goodoutput 2>badoutput
tee command, which takes information from Standard Input and sends that information to a file, as well as to Standard Output.
cat prologue|tr a A|sort|pr –d|tee newfile|less
Chaining multiple commands
cp test.txt /temp; cp test.text /tmp
Bash Functions
#!/bin/bash function hello(){ for NAME in $@ do echo "Hello $NAME" done }
Call Script
hello Jason Dan Ryan
Those three names will be processed individually
SED Command
The sed command is typically used to search for a certain string of text, and replaces that text string with another text string using the syntax s/search/replace/. For example, the following output demonstrates how sed can be used to search for the string “the” and replace it with the string “THE”
cat filename.text | sed /s/the/THE
Notice from the preceding output that sed only searched for and replaced the first occur- rence of the string “the” in each line. To have sed globally replace all occurrences of the string “the” in each line, simply append a g to the search-and-replace expression:
cat prologue | sed s/the/THE/g