当前位置:网站首页>Shell_ 05_ operator
Shell_ 05_ operator
2022-07-06 16:51:00 【Coke loving w】
Shell_05_ Operator
Operator
Operators are divided into : Arithmetic operator 、 Relational operator 、 Logical operators 、 String operators and file test operators
1) When using operators , You must add spaces on the left and right sides of the operator to separate other variables
Command operator
Association system command execution : There is a dependency between the two commands ( And 、 or )
Command execution | |
---|---|
command 1 && command 2 | If command 1 Successful execution , Then start to execute the command 2 |
If command 1 An error occurred during execution , Do not execute the order 2 | |
command 1 || command 2 | If command 1 Successful execution , Do not execute the order 2 |
If command 1 An error occurred during execution , Then start to execute the command 2 |
1) Whether the command is successfully executed depends on “$?” Is the variable 0 To judge
Such as : stay /root/test/abc Create files under folders test and test2
// Regardless of /abc Does the folder exist , Can be established
Arithmetic operator
Suppose there are variables a and b, The values are 10 and 20
Operator | explain | give an example |
---|---|---|
+ | Add | `expr $a + $b` The result is 30. |
- | Subtraction | `expr $a - $b` The result is -10. |
* | Multiplication | `expr $a \* $b` The result is 200. |
/ | division | `expr $b / $a` The result is 2. |
% | Remainder | `expr $b % $a` The result is 0. |
= | assignment | a=$b Will put the variable b The value is assigned to a |
= = | Used to compare two numbers Same returns true( really ) | [ $a == $b ] return false( false ) |
!= | Used to compare two numbers If not, return to true | [ $a != $b ] return true |
1)bash It doesn't support arithmetic itself , It can be done by awk、expr and bc To achieve
2) Through the bracket operation form :[ $ Variable 1 Operator $ Variable 2 ]
// If you assign the result of the operation to other variables , It is also necessary to add $
expr command : Record the result of expression calculation
Command format :expr value 1 Operator value 2
1) Only integer level operations can be performed
Such as : Use expr Do four calculations
//“*” Operators need to pass “\” Transference
Bracket operators
Judging symbols : brackets “[ ]”
Command format :[ Detection expression ]
1)[ ] Belongs to operator , When using, you need to add spaces at the beginning and end
2) Variables in brackets , It is best to use double quotation marks
3) Constants in brackets , It's best to use a single / In double quotation marks
Test parameters | meaning | analysis |
---|---|---|
1. About file type detection | ||
-e File path | Test files ( Including directory ) Whether there is If it is , Then return to true | [ -e $file ] return true |
-d File path | Check if the file is a directory If it is , Then return to true | [ -d $file ] return false |
-f File path | Check if the file is a normal file If it is , Then return to true | [ -f $file ] return true |
-s File path | Check if the file is empty ( file size ) Not empty return true | [ -s $file ] return true |
-p File path | Check whether the file is a pipeline file If it is , Then return to true | [ -p $file ] return false |
-b File path | Check whether the file is a block device file If it is , Then return to true | [ -b $file ] return false |
-c File path | Detect whether the file is a character device file If it is , Then return to true | [ -c $file ] return false |
-S File path | Check whether the file is Socket file If it is , Then return to true | [ -c $file ] return false |
2. About file permission detection | ||
-r File path | Check whether the file is readable If it is , Then return to true | [ -r $file ] return true |
-w File path | Check whether the file is writable If it is , Then return to true | [ -w $file ] return true |
-x File path | Check if the file is executable If it is , Then return to true | [ -x $file ] return true |
-u File path | Check if the file is set SUID position If it is , Then return to true | [ -u $file ] return false |
-g File path | Check if the file is set SGID position If it is , Then return to true | [ -g $file ] return false |
-k File path | Check whether the file is set with the adhesive bit (Sticky Bit) If it is , Then return to true | [ -k $file ] return false |
3. About the detection of document comparison | ||
-nt (new than) | Check whether the first file is newer than the second If new , Then return to true | [ $file1 -nt $file2 ] |
-ot (old than) | Check whether the first file is older than the second If it's old , Then return to true | [ $file1 -ot $file2 ] |
-ef | Check whether the two files are the same If the same file , Then return to true | [ $file1 -ef $file2 ] |
4. About integer detection | ||
-eq (eaqul) | Check whether two numbers are equal Equal return true | [ $a -eq $b ] return false. |
-ne (not equal) | Check whether two numbers are equal Unequal return true | [ $a -ne $b ] return true. |
-gt (great than) | Check whether the number on the left is greater than that on the right If it is , Then return to true | [ $a -gt $b ] return false. |
-ge | Check whether the number on the left is equal to or greater than the number on the right If it is , Then return to true | [ $a -ge $b ] return false. |
-lt (less than) | Check if the number on the left is less than the number on the right If it is , Then return to true | [ $a -lt $b ] return true. |
-le | Check whether the number on the left is less than or equal to the number on the right If it is , Then return to true | [ $a -le $b ] return true. |
5. About string detection | ||
-z | Check if the string length is 0 by 0 return true | [ -z $c ] return false |
-n | Check if the string length is 0 Not for 0 return true | [ -n $c ] return true |
\> | Check whether the left string is larger than the right string Greater than return true( according to ASCII) | [ $c \> $d ] return true |
\< | Check whether the left string is smaller than the right string Less than return true( according to ASCII) | [ $c \< $d ] return false |
= = | Checks if two strings are equal Equal return true | [ $c = = $d ] return false |
6. About multiple condition detection | ||
-a ( And operation ) | Both expressions are true To return to true | [ $a -lt 20 -a $b -gt 100 ] return false |
-o ( Or operations ) | There is an expression for true Then return to true | [ $a -lt 20 -o $b -gt 100 ] return true |
! ( Non operation ) | Expression for true Then return to false | [ ! false ] return true |
1) Suppose there are variables a and b, The values are 10 and 20
2) Suppose there are variables c and d, The values are ‘abc’ and ‘efg’
3) The authority is judged as or : Only one of the three identities has , Think true
test command : The file / Data for specified detection
Command format :test Detection expression
1) The use method and effect are equivalent to the bracket judgment symbol
Such as : Compare sizes of integers
//test And brackets do not directly print test results , Need to use “$?” see
Double parenthesis operation
Double parentheses can realize advanced mathematical expressions in Inner parentheses
1) Format :(( Mathematical expression ))
2) A mathematical expression can be any mathematical assignment or comparison expression ;
3) More used for for loop , The implementation is similar to C Linguistic for Circular format ;
Operator | explain |
---|---|
++ | Self increasing operation |
– | Self built operation |
! | Logical negation |
~ | Position inversion |
** | Power operation |
<< | Left displacement |
>> | Right displacement |
& | Bit Boolean and |
| | Bit Boolean or |
&& | And operation |
|| | Or operations |
边栏推荐
- Two weeks' experience of intermediate software designer in the crash soft exam
- Chapter 5 detailed explanation of consumer groups
- Audio and video development interview questions
- Market trend report, technological innovation and market forecast of desktop electric tools in China
- 第五章 Yarn资源调度器
- Hbuilder x format shortcut key settings
- LeetCode 1640. Can I connect to form an array
- LeetCode1556. Thousand separated number
- Error occurred during initialization of VM Could not reserve enough space for object heap
- 100张图训练1小时,照片风格随意变,文末有Demo试玩|SIGGRAPH 2021
猜你喜欢
~82 style of table
[unsolved]7-14 calculation diagram
Chapter 6 rebalance details
「博士毕业一年,我拿下 ACL Best Paper」
第6章 DataNode
LeetCode 1584. Minimum cost of connecting all points
Gridhome, a static site generator that novices must know
字节跳动技术新人培训全记录:校招萌新成长指南
Saw local status change event StatusChangeEvent [timestamp=1644048792587, current=DOWN, previous=UP]
字节跳动新程序员成长秘诀:那些闪闪发光的宝藏mentor们
随机推荐
~83 form introduction
~85 transition
ByteDance new programmer's growth secret: those glittering treasures mentors
~72 horizontal and vertical alignment of text
Usage of insert() in vector
7-5 blessing arrived
7-10 punch in strategy
LeetCode 1562. Find the latest group of size M
Use JQ to realize the reverse selection of all and no selection at all - Feng Hao's blog
Chapter 6 datanode
我走过最迷的路,是字节跳动程序员的脑回路
Research Report on market supply and demand and strategy of China's four flat leadless (QFN) packaging industry
Error occurred during initialization of VM Could not reserve enough space for object heap
I'm "fixing movies" in ByteDance
Market trend report, technological innovation and market forecast of desktop electric tools in China
~81 long table
第五章 Yarn资源调度器
Research Report on market supply and demand and strategy of China's four seasons tent industry
LeetCode 1638. Count the number of substrings with only one character difference
Codeforces Global Round 19