Korn Shell Notes
1 Useful Cmds
wc - display a count of lines, words and characters in a file.It can be used to count the numbers together with other commands, such as ls, who and so on.
cut - cut out selected fields of each line of a file.
The name of each unique user that is logged on is displayed using this command:
$ who | cut —f1 —d' ' | sort —u
anatole
root
print is a Korn shellspecializedcommand which is similar to echo .
nl - line numbering filter.
2 Conditional Execution
You can implement a simple if command by using the && and || operators together like this:
command1 && command2 || command3
If command1 returns true, then command2 is executed, which causes command3 to not be executed. If command1 does not return true, then command2 is not executed, which causes command3 to be executed.
$ echo "This is file temp:" ; cat temp | nl
This is file temp:
1 The rain in Spain
2 falls mainly on the plain
This is file temp:
1 The rain in Spain
2 falls mainly on the plain
then by using {}s, the output will be:
$ { echo "This is file temp:"; cat temp ; } | nl
1 This is file temp:
2 The rain in Spain
3 falls mainly on the plain
There must be whitespace after the opening {, and commands within the {}'s must be terminated with a semi-colon.
Commands enclosed in () are executed in a subshell. Subshells are generated whenever you enclose commands in ()'s, perform command substitution, for background processes, and for coprocesses.A subshell is a separate copy of the parent shell, so variables, functions, and aliases from the parent shell are available to the subshell. However, subshells cannot change the value of parent shell variables, functions, or aliases.
$ { echo "This is file temp:"; cat temp ; } | nl
1 This is file temp:
2 The rain in Spain
3 falls mainly on the plain
There must be whitespace after the opening {, and commands within the {}'s must be terminated with a semi-colon.
Commands enclosed in () are executed in a subshell. Subshells are generated whenever you enclose commands in ()'s, perform command substitution, for background processes, and for coprocesses.A subshell is a separate copy of the parent shell, so variables, functions, and aliases from the parent shell are available to the subshell. However, subshells cannot change the value of parent shell variables, functions, or aliases.
4 Redirecting Standard Output
By using the > symbol, the standard output of a command can be redirected to a file, instead of your terminal.
You can also use the > command to create an empty file:
$ > tmp
$ ls —s tmp
0 tmp
This is equivalent to touch tmp .
Standard output can be appended to a file by using the >> redirect operator.
Standard output is closed with the >&- redirect operator:
$ echo "This is going nowhere" >&-
$