Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
P.V.Krishna Kishore
M.C.A-B5
1
User UNIX Interface: SHELL
Provides command line as an interface between
the user and the system
Is simply a program that starts automatically
when you login
Uses a command language
Allows programming (shell scripting) within the
shell environment
Uses variables, loops, conditionals, etc.
2
Shell Variables
A shell variable is a keyword that is set by the
shell for a specific use.
Usually entered in all uppercase letters.
To display the contents of an individual
variable, use the echo command and place a
dollar sign before the variable name.
Example: echo $BASH
3
Various UNIX shells
sh (Bourne shell)
ksh (Korn shell)
csh (C shell)
tcsh
bash
Differences mostly in scripting details
4
Predefined Shell Variables
Shell Variable Description
PWD The most recent current working directory.
OLDPWD The previous working directory.
BASH The full path name used of the bash shell.
RANDOM Generates a random integer between 0 and 32,767.
HOSTNAME The current hostname of the system.
IFS Internal Field Separator used as a separator between
words in the shell or shell scripts.
PATH A list of directories to search of commands.
HOME The home directory of the current user.
PS1 The primary prompt.
PS2 Second level prompt.
5
Simple Redirections
Command Syntax Short Description
6
Wildcards
Allows you to select files that satisfy a
particular name pattern (wildcards)
7
Command Substitution
Command substitution allows you to substitute
the output of a command in place of the
command itself.
Two forms of command substitution:
$(command)
`command`
Examples:
$ echo "User" $(whoami) " is on the system "
$(hostname)
User krush is on the system ux
$ echo "Today's date is" `date`
Today's date is Sun Jul 17 08:06:28 CDT 2005
8
Shell Variables
Named locations to store data
Their values can be obtained by preceding their
names with dollar signs ($)
Environment variables are conventionally named
in all capital letters and their values can be made
known (export) to subprocesses.
9
User-defined Shell Variables
Created by a user/programmer to store
information to be used in a current script (i.e. not
to be used by other scripts called by the current
script)
Unless exported, they are available only (locally)
to the shell in which they are created
The variable names consist of lowercase letters
10
User-defined Shell Variables
Syntax: variable_name = value
Example: Create a variable named “rate” to hold
an interest rate and initialize it to 7.65.
$ rate=7.65
11
Accessing Shell Variables
To access the contents a shell variable, simply
place a dollar sign ($) in front of the variable
name
Syntax: $variable_name
Example: Display the contents of the variables
named MYPATH and “rate”, which were defined
previously.
$ echo $MYPATH
/home/ux/krush/bin
$ echo $rate
6.75
12
Resetting Variables
To reset or remove the contents of defined
variables, use the command “unset”
The unset command can be used to unset both
local and environment variables
Syntax: unset variable_name
Example: Remove the contents of the variable
MYPATH.
$ unset MYPATH
$ echo $MYPATH
Null value
$ displayed
13
Listing Variables
Use the commands: env and set
env – list all shell variables (including exported)
set – list all set variables: local, and exported
(including variables set to null)
14
User input
allows to prompt for user input
Syntax:
or
15
Command-line Arguments
Use command-line arguments (positional parameters)
to pass information into shell script.
Parameter Meaning
$0 References the name of the current shell script or a UNIX
command
$1-$9 Positional parameters 1 through 9
16
Examples:
$ set tim bill ann fred The ‘set’
$1 $2 $3 $4 command can
$ echo $* be used to
tim bill ann fred assign values to
positional
$ echo $# parameters
4
$ echo $1
tim
$ echo $3 $4
ann fred
17
Decision Structure
To briefly discuss the following topics:
Decision-structure theory
Relational operators
If-statement
If-elif-statement
Case-statement
Logical operators
File testing
18
Decisions
19
The if…statement
The if construct has the following syntax:
if [ condition ]; then
statements
[elif condition
then statement]
[else
statements]
fi
The simplest form without the elif and else
parts executes the statements only if the
condition is true.
The phrase elif stands for “else if.” It is part of
the if statement and cannot be used by itself.
20
The test command
Syntax: test expression [expression]
Purpose: to evaluate ‘expression’ and return
true or false
Example:
if test –w “$1”
then
echo “The file $1 is write-able”
fi
21
Relational Operators
Meaning Numeric String
Greater than -gt
Greater than or equal -ge
Less than -lt
Less than or equal -le
Equal -eg =
Not equal -ne !=
str1 is less than str2 str1 < str2
str1 is greater str2 str1 > str2
String length is greater than zero -n str
String length is zero -z str
22
Logical Operators
To test multiple commands and conditional
expressions, you can implement the following
operators:
AND (&&)
OR (||)
NOT (!)
23
Logical Operator: &&
The “AND” logical operator has the following
syntax:
statement1 || statement2
26
The case Structure
Syntax: Purpose:
case test-string in To implement
multi-way branching
pattern1) command-list1
;;
pattern2) command-list2
;;
patternN) command-listN
;;
esac
27
The while Loop
Purpose:
To execute commands in “command-list” as long
as “expression” evaluates to true
Syntax:
while [ expression ]
do
command-list
done
28
The until Loop
Purpose:
To execute commands in “command-list” as
long as “expression” evaluates to false
Syntax:
until [ expression ]
do
command-list
done
29
The break command
while condition
do
cmd-1 This iteration is over
break and there are no
cmd-n more iterations
done
echo “done”
30
The continue command
while [ condition ]
do
cmd-1
This iteration is over;
continue do the next iteration
cmd-n
done
echo “done”
31
The for Loop
Purpose: To execute commands in “cmd-
list” as many times as the number of words
in the “argument-list”
Syntax:
for variable in argument-list
do
cmd-list
done
32
Example1: The for Loop
$ cat for.demo $ for.demo
#!/bin/bash 2
for i in 7 9 2 3 4 5 3
do 4
echo $i 5
done | sort -n 7
9
33
Shell Functions
To briefly discuss the following topics:
Understand functions
Components of functions
Implement functions
Why should we write shell functions?
It’s fast. When you invoke a function, it is
already in the shell’s memory.
Easy to develop, organize and maintain long
source code.
34
Shell Functions
A function is a set of statements that can be
used to perform a specific task.
Functions are self-contained blocks of code
that can be used multiple times simply by
referencing the function name.
Functions can accept values and return a
result.
35
Shell Functions
Functions are implemented within a shell
script and they are usually placed at the
beginning of the script.
They must be defined before they can be
referenced.
General format:
function function-name ( )
{
statements
[return]
}
36
Shell Functions
You can place commands before the function
as long as they do not reference the function.
When the shell interprets a script, it reads
past the function and executes statements
following it.
Once the function is called, the shell executes
the statements within the function.
After the function is completed, the shell
returns control to the statements following the
function call.
37
Example: function
#!/bin/bash
funky () {
# This is about as simple as functions get.
echo "This is a funky function."
echo "Now exiting funky function."
}
funky
38
Example: function
#! /bin/bash
if [ "$USER" = bozo ]
then
bozo_greet ()
{
echo "Hello, Bozo."
}
fi
bozo_greet
39
Example: function
#! /bin/bash
bozo_greet ()
{
echo "Hello, $1."
}
bozo_greet bozo
bozo_greet $USER
40
41