-
- Special Shell variables
- Test operation: Two Yuan comparison
- Arithmetic comparison
- string comparison
- File type operations
- Parameter substitution and extension
- String manipulation
- Summary of some structures
Special Shell variables
| variables |
meaning |
| $ |
Foot Name |
| $-$9 |
Position parameter 1-9 |
| ${10} |
Position parameter 10 |
| $# |
Number of positional parameters |
| "$*" |
All positional parameters (as a single string) |
| "[Email protected]" |
All positional parameters (each as a separate string) |
| ${#*} |
The number of command-line arguments passed to the script |
| ${#*} |
The number of command-line arguments passed to the script |
| $? |
return value |
| $$ |
PID of the script process |
| $- |
The identity passed to the script |
| $_ |
Last parameter of the previous command |
| $! |
Process ID (PID) of the last job running in the background |
Test operation: Two USD compare arithmetic comparison
| operator |
meaning |
| -eq |
Equals |
| -ne |
Not equal to |
| -lt or ((<)) |
Less than |
| -le or ((<=)) |
Less than or equal |
| -gt or ((>)) |
Greater than |
| -ge |
Greater than or equal |
string comparison
| operator |
meaning |
| = |
|
| == |
|
| != |
|
| < |
Less than (ASCII) |
| > |
Greater than (ASCII) |
| -Z |
String is empty |
| -N |
string is not empty |
If you use it in a double-bracket [[...]] test structure, you do not need to use the escape character \.
File type operations
| operator |
meaning |
| -E |
File is |
| -F |
Standard file |
| -D |
Directory |
| -H |
Hard Link Link |
| -L |
Link |
| -B |
Block devices |
| -C |
Character device |
| -P |
Pipeline |
| -S |
Socket sockets |
| -T |
File is associated with a terminal |
| -N |
The file has been modified since the last time it was read |
| -O |
The document belongs to the Lord himself. |
| -G |
Group ID is consistent with performer |
| -S |
The file size is not 0 |
| -R |
File has Read permission |
| -W |
File has Write permissions |
| -X |
File has Execute permissions |
| -G |
Set the Sgid tag |
| -U |
Set the suid tag |
| -K |
Set the paste position |
| File1-nt File2 |
File1 than file File2 new |
| File1-ot File2 |
File1 than file2 old |
| File1-ef File2 |
Fiel1 and Fiel2 are hard links to the same file |
Parameter substitution and extension
| expression |
meaning |
| ${va R_default} |
if Var is not declared, then use $default as its value * |
| ${var=default} |
if Var is not declared, Then use $default as its value * |
| ${var:-default} |
if Var is not declared, or its value is empty, then use $default as its value * | /tr>
| ${var:=default} |
if Var is not declared, or its value is empty, use $default as its value * |
| ${var+ot Her} |
if Var is declared, then its value is $other, otherwise it will be a null string |
| ${var:+other} |
if Var is set, then its The value is $other, otherwise the null string |
| ${var? ERR_MSG} |
if Var is not declared, print $err_msg* |
| ${var:? ERR_MSG} |
if Var is not set, print $err_msg* |
| ${!varprefix*} |
match before all start with Varprefix Declared variable |
| ${[email protected]} |
matches all variables declared at the beginning of Varprefix |
String manipulation
| An expression |
meaning |
${#string} |
Length of $string |
${string:position} |
In $string, start extracting substrings from position $position |
${string:position:length} |
In $string, a substring of length $length is extracted starting from position $position |
${string#substring} |
Delete the substring of the shortest match $substring from the beginning of the variable $string |
${string##substring} |
Delete the substring of the longest matching $substring from the beginning of the variable $string |
${string%substring} |
Delete the substring of the shortest match $substring from the end of the variable $string |
${string%%substring} |
Delete the substring of the longest matching $substring from the end of the variable $string |
${string/substring/replacement} |
Use $replacement to replace the first matching $substring |
${string//substring/replacement} |
Use $replacement instead of all matching $substring |
${string/#substring/replacement} |
If the $string prefix matches the $substring, then the $replacement is used instead of the matching $substring |
${string/%substring/replacement} |
If the $string suffix matches the $substring, then the $replacement is used instead of the matching $substring |
expr match "$string" ‘$substring‘ |
Matches the length of the $substring* at the beginning of the $string |
expr "$string" : ‘$substring‘ |
Matches the length of the $substring* at the beginning of the $string |
expr index "$string" $substring |
The position in $string where the first character of the $substring is matched to |
expr substr $string $position $length |
Extracting substrings of length $length from position $position in $string |
expr match "$string" ‘\($substring\)‘ |
Extract the $substring* from the $string's opening position |
expr "$string" : ‘\($substring\)‘ |
Extract the $substring* from the $string's opening position |
expr match "$string" ‘.*\($substring\)‘ |
Extract $substring* from the end of $string |
expr "$string" : ‘.*\($substring\)‘ |
Extract $substring* from the end of $string |
$substring is a regular expression.
Summary of some structures
| An expression |
meaning |
| if [CONDITION] |
Test structure |
| if [[CONDITION]] |
Extended Test structure |
| Array[1]=element1 |
Array initialization |
| [A-z] |
The character range of a regular expression |
| ${!variable} |
Indirect variable Reference |
| {Command1; command2;.. commandn;} |
code block |
| {String1,string2,string3,...} |
Curly brace Extension |
| (Command1; command2) |
Command groups executed in a child shell |
| array= (element1 element2 element3) |
Array initialization |
| result=$ (COMMAND) |
Executes the command in the child shell and assigns the result to the variable |
| > (COMMAND) |
Process substitution |
| < (COMMAND) |
Process substitution |
| (var = 78) |
Integral type operation |
| var=$ ((20 + 5)) |
Integer operation and assigns the result to the variable |
| "$variable" |
|
result=COMMAND |
Run a command in a child shell and assign the result to a variable |
Reference http://blog.csdn.net/u012749933/article/details/48030503
Linux shell Bash built-in variable reference