当前位置:网站首页>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 |
边栏推荐
- ~87 animation
- ~72 horizontal and vertical alignment of text
- Soft music -js find the number of times that character appears in the string - Feng Hao's blog
- Research Report on hearing health care equipment industry - market status analysis and development prospect prediction
- ~79 Movie card exercise
- 第五章 Yarn资源调度器
- 视频压缩编码和音频压缩编码基本原理
- 我走过最迷的路,是字节跳动程序员的脑回路
- Chapter 2 shell operation of hfds
- Mp4 format details
猜你喜欢
LeetCode 1584. Minimum cost of connecting all points
图像处理一百题(11-20)
Cmake Express
Ffmpeg command line use
Chapter 5 detailed explanation of consumer groups
Saw local status change event StatusChangeEvent [timestamp=1644048792587, current=DOWN, previous=UP]
Data config problem: the reference to entity 'useunicode' must end with ';' delimiter.
Usage of insert() in vector
Chapter 6 datanode
Native JS realizes the functions of all selection and inverse selection -- Feng Hao's blog
随机推荐
字节跳动新程序员成长秘诀:那些闪闪发光的宝藏mentor们
Eureka high availability
Research Report on hearing health care equipment industry - market status analysis and development prospect prediction
Research Report on market supply and demand and strategy of Chinese table lamp industry
Chapter 1 overview of MapReduce
[unsolved]7-14 calculation diagram
Codeforces Round #771 (Div. 2)
~86m rabbit practice
力扣leetcode第 280 场周赛
Chapter 5 detailed explanation of consumer groups
CMake Error: Could not create named generator Visual Studio 16 2019解决方法
ByteDance open source Gan model compression framework, saving up to 97.8% of computing power - iccv 2021
Research Report on market supply and demand and strategy of China's four flat leadless (QFN) packaging industry
Erlang installation
~81 long table
ByteDance 2022 school recruitment R & D advance approval publicity meeting, students' top 10 issues
Hbuilder x format shortcut key settings
Solr standalone installation
解决Intel12代酷睿CPU单线程调度问题(二)
~71 abbreviation attribute of font