shell script-le

Meaning of eq, ne, le, ge, lt, gt in Shell script

if [1-ne1];then

fi

-eq:equal to

-ne:not equal to

-le:less than or equal to

-ge:greater than or equal to

-lt:less than

-gt: greater than

Shell Scripting

Shell Scripting Basics

Overview: shell is actually an interface between the kernel and the user.

Shell Scripting

If there is a series of frequently used linux commands, you can store them in a file swell. shenll can read this file and execute the shenll can read this file and execute the commands in it. Such a file becomes a script file.

Executing shell scripts

To create a shell script, you have to write it in a text file using any editor like vi.

In order to use bashshell Rai to execute the script magic, the command is: bashmagic or . /magic

echo command:

echo “thisisanexampleoftheechocommand!”

The screen will show back the ” thisisanexampleoftheechocommand!”

#Symbol

Used in shell scripts that can contain commented entries

echo “hello”

thisisacommentline.thiswouldnotproceanyoutput!

echo “world!”

The second line is an example of a comment. It will be ignored by the shell and no message will be generated

Variables:

Can be created at any time by simple assignment.

Syntax:

<variablename>-<value>

All variables in Linux are treated as strings

Referring to a variable:

The $ symbol is used to refer to the contents of a variable

variable1=${ variable2}

Reading a value into a variable

When executing shell scripts, the shell also allows the user to read a value into a variable directly from the keyboard, which can also be done using the read command.

$readfname

Local and global shell variables

Local variables

When a shell is referenced, only the shell that created it is aware of the variable’s existence

Global variables

are known as subshells

Variables created in a shell are localized to the shell that created them, unless the shell created them. in the shell that created it, unless specifically noted as global with the export command.

Environmental variables:

By changing the values of these variables, the user is able to customize the environment

Some examples of environment variables are HOME, PATH, PS1, PS2, LOGNAME, SHLVL, and SHELL

HOME variable

Each user on a Linux system has an associated variable called HOME. Each user on a Linux system has an associated directory called HOME

When a user logs on, he or she enters the corresponding HOME directory

$echo$HOME

The PATH variable

Contains a list of directory pathnames delimited by colons, which makes it easy for executable programs to search.

PS1 variable

The PS1 (PromptString1) variable contains the shell prompt, the $ sign

$PS1=”HELLO>”

HELLO>

PS2 variable< /p>

Is the environment variable that sets the value for the second prompt

LOGNAME variable

Contains the user’s registered name

$echo “${LOGNAME}”

SHLVL variable

The variable contains the the current working shelllevel

SHELL variable

The environment variable stores the user’s default shell

The env command

can be used to view a table of all moved environment variables and their respective values!

Command substitution

Another (non-Pipes) way to use multiple commands on a single command line is through command substitution

echo “thedatais `date`”

expr command

Used to find the value of an arithmetic expression. The output of this command is sent to standard output

$expr4+5

Will display 9 on the screen

Arithmetic Expansion:

You can bracket an expression in $((…)) and compute its value with the following command;

$((expression))

example1

Write a shell script to count the number of unanswered inquiries at a call center. The script should accept the total number of queries reported for the day and the number of queries answered in order to calculate the number of unanswered queries.

Total of all unanswered inquiries = total of all inquiries – number of answered inquiries

<! –[if!supportLists]–>*<! –[endif]–>※※※※※※※※※※※※※※※※※※※※※※※

Conditional execution

test and []

Tests and []

Evaluates expressions and returns true(0) or false()

Numeric tests:

– eq equals is true

– ne is true if not equal

-gt is true if greater than

-ge is true if greater than or equal to

-lt is true if less than

-le is true if less than or equal to

If Constructs

The Linux shell provides constructs for loops and determinations that can be used in shell scripts

< p>Arithmetic test

Combined with the if construct, it can be used to test the numeric value of a variable

String test

The test command can also be used for strings

=Equal is true

! = not equal is true

-z string length is zero is true

-n string length is non-zero is true

File test

The test command can also be used to check the status of a file

-e file exists is true

-r file exists and is readable is true

-w file true if it exists and is writable

-x file true if it exists and is executable

-s file true if it exists and has at least one character

-d file true if it exists and is a directory

-f file true if it exists and is a normal file

-c file true if it exists and is a character file

True if -b file exists and is a block special file

-a and -o or ! not

exit command

To terminate the execution of a shell script and return to the $ prompt

case. . esac

This construct used in shell scripts executes a specific set of commands based on the value of a variable

When the value of a variable matches one of the values. a set of commands written to that value is executed.

example3

Iteration

while construct

while<condition>

do

<command(s)>

done

Command(s)>

Between do and done can only be executed if the condition is true.

until construct

until loop constructs the opposite of a while loop

until loop will continue to execute until the condition is true

for construct

forvariable_namein<list_of_values>

forvariable_namein<list_of_values>

do

done

The for loop takes a list of values as input and executes a loop for each value in the loop

The break and contineu commands

Similar to other languages

The for constructor

forvariable_namein<list_of_variable_namein<list_of_values>

Controlling the execution of a process

Requesting background processing

The symbol used to request background processes is (&)

$wctempfile&

[1]2082

$vinewfile

Checking for background process

The ps (process status) command generates one line of entry for each process for each current activity.

Terminating background processes

To terminate background processes, use kill, as follows

kill278

Seeing how long it took to complete a command

You can use the time command to see how long it took for a command to complete from start to finish

timefine/etc -name “passwd “2>/dev/null/dev/null indicates that error messages are ignored.

Introduction to piping

The vertical bar (|) is the piping character

It’s just the shell: the output of the command before the “|” is sent as input to the command after the “|”

ls -l|more

Combining commands with pipes is powerful!

Shell script to compare number sizes

Your write down is correct, the following is fine

if[[$DEV_SIZE-ge${EXT_LIMIT[0]}&&$DEV_SIZE-le${EXT_LIMIT[1]}]];

if[$DEV_ SIZE-ge${EXT_LIMIT[0]}-a$DEV_SIZE-le${EXT_LIMIT[1]}]]

If you are using [] or [[]] for integer testing, you need to use the symbols -eq or -le or -ge for the comparison operators inside, and you can use the >= and <= comparison operators only inside (()). and the logical operations && and || are used in [[and -a and -o are used in [[and && and || are used in (().

Under Linux, write a shell script that reads 5 integers from the keyboard and then displays the maximum, minimum, and average numbers.

#! /bin/bash

#Input any 5 numbers, determine max, min, and sum

s=0

read-p “pleaseinput: “num

s=$(($s+$num))

max=$num

min=$num

avg=$(($s/5))

foriin`seq4`

do

read-p “pleaseinput: “num

s=$(($s+$num))

if[$num-le$min];then

min=$num

fi

if[$num-ge$max];then

max=$num

fi

done

echomax:$maxmin:$minavg:$avg

< imgclass>

Extended information:

For loop:

General format:

forvarinitem1item2…. .itemN

do

command1

command2

commandN

done

Write it on one line:

forvarinitem1item2…. .itemN;docommand1;command2?done;

Write a shell script that reads in 10 parameters and outputs the maximum and minimum values. (Include execution results)

#! /usr/bin/ksh

cal_id=1

num_count=10

max_num=-99999

min_num=-99999

while[$cal_id-le$num_count]

do

readline

if[$cal_id-eq1];then

min_num=$line

fi

if[$line-ge$max_num];then

max_num=$line

< p>fi

if[$line-le$min_num];then

min_num=$line

fi

cal_id=`expr$cal_id+1`

done

clear

echo$ max_num

echo$min_num

Basically no more problems

The shell script -d is the catalog file, so what are -e, -f? And "! -e" what does this mean again?

-e means true if filename exists.

-f means true if filename is a regular file.