当前位置:网站首页>Shell_ 06_ Judgment and circulation

Shell_ 06_ Judgment and circulation

2022-07-06 16:50:00 Coke loving w

Judge

if

Conditional statements : Judge according to the condition and execute the corresponding command


Command format :

if [  Conditions 1 ];then
 Procedures section 1
elif [  Conditions 2 ];then
 Procedures section 2
else
 Procedures section 3
fi

1)if and fi Always in pairs ( Represents the beginning and end of a judgment statement );

2) Judgement statements can be nested ;

3) When a judgment statement contains multiple levels of the same if or elif when , Then only the status code returned by the first condition is 0 The statement will be executed ( If the levels are different , You can run multiple )


1) Conditions established , function then Followed by the program segment ( conversely , function else Followed by the program segment )

// Judge whether it is true according to the status code returned by the condition (0 To establish , Others are failures )

2) A space must be added on the left and right sides of the condition , Otherwise, the condition cannot be recognized ;

3) You can also execute the specified command as a condition , But the running results will be displayed on the terminal


Such as : Judging statements by conditions , Judge whether the current user's home directory and the specified file exist

1) To write test5.sh Script files
 Insert picture description here

2) call test5.sh Script files
 Insert picture description here


Such as : Judging statements by conditions , Check users who have a home directory but do not exist and users who do not have a home directory

1) To write test6.sh Script files
 Insert picture description here

2) call test6.sh Script files
 Insert picture description here

case

Content judgment statement : Judge according to the variable content and execute the corresponding command


Command format :

case ${ Variable name } in

“ Variable content 1”)

 Procedures section 1
;;
“ Variable content 2”)
 Procedures section 2
;;
“ Variable content N”)
 Procedures section N
;;
*)
;;
esac

1) The program segment of each variable content needs two semicolons “;;” Represents the end of the program paragraph ;

2)case and esac Always in pairs ( Represents the beginning and end of content judgment );

3) The variable can be : Defining variables 、 The input variable 、 Built-in variables 、 Accept variables ;

4) If the variable content contains more than one content , Use between content “|” Separate ;


Such as : Set up hello3.sh Script files are only input hello Only then respond

1) To write hello3.sh Script files
 Insert picture description here

2) call hello3.sh Script files
 Insert picture description here


Such as : Judge sentences by content , Different content shows different responses

1) To write test26.sh Script files
 Insert picture description here

2) call test26.sh Script files
 Insert picture description here

loop

Cycle category

for do done

for loop : Specify the number of cycles


Command format 1:

for  Formal variable  in  Content 1  Content 2  Content N
do
 Procedures section 
done

1) Content 1~N Will bring in formal variables in turn ;

2) Content 1~N Array variables or variable forms can be used to replace ;

3) When the content contains single quotation marks or spaces , Use double quotation marks

// You can also modify IFS Variable , Modify the field separator

4) When the cycle is over , The formal variable saves the last brought in content by default ;

5) stay done Add output redirection after , You can import the cycle results into the specified file ;


Such as : adopt for Loop to realize the output of different contents of variables

1) To write test3.sh Script files ;
 Insert picture description here
2) call test3.sh Script files
 Insert picture description here


Such as : establish dir_perm.sh File implementation determines the permissions of all files in the directory

1) To write dir_perm.sh Script files ;
 Insert picture description here

2) call dir_perm.sh Script files
 Insert picture description here


Internal field separator (Internal Field Separator):Shell Characters used to separate each field in

1) Variable bit of internal character separator :IFS

2) The default value is : Space

3) Assignment format :IFS= character

// If there are multiple characters as separators , It can be written together during assignment


Such as : Will a newline 、 The colon 、 The format of semicolon and double quotation mark as separator is :IFS=$‘\n’:;”


Such as : adopt IFS Variable implementation for Multiple newline inputs in the loop

1) To write test7.sh Script files
 Insert picture description here

2) call test7.sh Script files
 Insert picture description here


Command format 2:

for ((  Initial value ; The loop condition ; The assignment operation  ))
do
 Procedures section 
done

1) The format is similar to C Linguistic for loop , And variables can be called ;

2) There can be multiple initial values and assignment operations , But there can only be one cycle condition ;


Such as : establish sum1_input.sh file , Calculation 1 Add to the sum of the input numbers

1) To write sum1_input.sh Script files
 Insert picture description here
2) call sum1_input.sh Script files
 Insert picture description here


Such as : stay for Define multiple initial values and assignment operations in the loop

1) To write test8.sh Script files
 Insert picture description here
2) call test8.sh Script files
 Insert picture description here

while do done

while loop : Don't exit the loop until the condition doesn't hold


Command format :

while [  Judge the condition  ]
do
 Procedures section 
done

(1) If multiple judgment conditions are specified

1) Only judge whether to continue the cycle according to the returned status code of the last judgment condition ;

2) Each judgment condition needs to occupy a separate line ;

3) Multiple judgment conditions will be executed in turn ;


(2) stay done Add output redirection after , You can import the cycle results into the specified file ;


Such as : adopt while Cycle output value

1) To write test9.sh Script files
 Insert picture description here

2) call test9.sh Script files
 Insert picture description here

until do done

until loop : Do not exit the cycle until the condition is established

Command format :


until [  Judge the condition  ]
do
 Procedures section 
done

(1) If multiple judgment conditions are specified

1) Only judge whether to continue the cycle according to the returned status code of the last judgment condition ;

2) Each judgment condition needs to occupy a separate line ;

3) Multiple judgment conditions will be executed in turn ;


(2) stay done Add output redirection after , You can import the cycle results into the specified file ;

Control cycle

Nested loop

Nested loop (Nested Loop): Any type of command can be called in the program segment of the loop ( Contains loops )


Such as : establish choice_what.sh Output three numbers randomly from the array , And can't repeat

1) To write choice_what.sh Script files
 Insert picture description here

2) call choice_what.sh Script files
 Insert picture description here


Such as : Through internal circulation /etc/passwd Formatted output of file

1) To write test10.sh Script files ;
 Insert picture description here

2) call test10.sh Script files
 Insert picture description here

Out of the loop

Jump out of the loop into :break command 、continue command


(1)break command : Jump out of the currently executing loop , And end the cycle

1) Command format :break N

//N Specify the loop level to jump out ( If there is no , The default is 1)


Such as : adopt break command , Jump out of for loop

1) To write test11.sh Script files
 Insert picture description here
2) call test11.sh Script files
 Insert picture description here


(2)continue command : Jump out of this cycle , Start the next cycle

1) Command format :continue N

//N Specify the loop level to jump out ( If there is no , The default is 1)


Such as : adopt continue Out of the loop

1) To write test12.sh Script files
 Insert picture description here
2) call test12.sh Script files
 Insert picture description here

原网站

版权声明
本文为[Coke loving w]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202131313543109.html