Shell commands, which can be split by semicolons, or by line breaks. If you want to write multiple commands in one line, you can pass the ";" Segmentation.
Such as:
bldr:deyuy/bin/my_shell>>a=5;if [[A-GT 4]]; then echo ' OK '; fi;
If statement structure [IF/THEN/ELIF/ELSE/FI]
If condition test statement
Then
Action
[Elif Conditions
Action
Else
Action
]
Fi
About condition Testing
1) Logical operators
| Logical Volume Label |
Express meaning |
| 1. |
The detection Logical volume label for files and directories. |
| -F |
Common. Detect if "Archive" exists eg:if [-f filename] |
| -D |
Common. Detects if the directory exists |
| -B |
Detects if it is a "block file" |
| -C |
Detects if it is a "character file" |
| -S |
Detects if it is a "socket tag file" |
| -L |
Detects if it is a "symbolic Link's profile" |
| -E |
Detects if "something" exists. |
| 2. |
About the logical volume label of the program. |
| -G |
Detect whether the program owned by the GID |
| -O |
Detection is owned by the program executed by the UID |
| -P |
Detects if a name pipe or FIFO is being sent between programs (to be honest, this is not a good idea.) ) |
| 3. |
About the property detection of the file. |
| -R |
Detect if a property is readable |
| -W |
Detects if a property can be written |
| -X |
Detect whether the property is executable |
| -S |
Detects if it is a "non-blank file" |
| -U |
Detect if a property with "SUID" is |
| -G |
Detect if a property with "SGID" is |
| -K |
Detect if a property with "sticky bit" is |
| 4. |
Judgments and comparisons between two files; for example [Test file1-nt file2] |
| -nt |
The first file is newer than the second one. |
| -ot |
The first file is older than the second one. |
| -ef |
The first file is the same file as the second file (link and other files) |
| 5. |
Logical AND (and) "or (OR)" |
| && |
The meaning of the logical and |
| || |
The meaning of a logical OR |
| operation symbol |
for meaning |
| = |
equals applies To: integer or string comparison if in [], only characters String |
| ! = |
is not equal to: integer or string comparison if in [], only String |
| < |
less than applied: integer comparison in [], cannot use the representation string |
| ; |
greater than applied: integer comparison in [], cannot use to represent string |
| -eq |
equals to: integer comparison |
| -ne |
is not equal to: integer comparison |
| -lt |
less than applied: integer comparison |
| -gt |
greater than applied: integer comparison |
| -le |
less than or equal to: integer comparison |
| -ge |
greater than or equal to: integer comparison |
| -A |
both establish (and) logical Expressions –a logical Expressions |
| -O |
single-sided (or) logical expression –o logical expression |
| -Z |
empty string |
| -N |
non-empty string |
2) Logical Expression Test command
How to use: Test EXPRESSION
deyuy/bin/my_shell>>test 1 = 1 && echo ' OK '
OK
deyuy/bin/my_shell > > Test 1 < 2 && echo "OK" | | echo "Err" Note: Test 1 < 2 This usage is wrong
ksh:2: Cannot open
ERR
deyuy/bin/my_shell >1> Test 1-lt 2 &am p;& echo "OK" | | echo "Err"
OK
deyuy/bin/my_shell >> [1 < 2] && echo "OK" | | echo "ERR"
Ksh:2: Cannot open
ERR
Deyuy/bin/my_shell >> [[1 < 2]] && echo "OK" | | echo "ERR"
OK
deyuy/bin/my_she ll >> if test 1 = 1; Then echo ' OK '; else echo ' no '; Fi
OK
deyuy/bin/my_shell >> if test 1 = 2; then echo ' OK '; else echo ' no '; fi
No
Note: All characters are separated from the logical operators directly with "spaces" and cannot be joined together.
Command1 && Command2 | | Command3
The order in which these three commands are executed is to execute command2 if the Command1 execution succeeds, or Command3 if unsuccessful.
Detailed reference: http://vbird.dic.ksu.edu.tw/linux_basic/0320bash_5.php
Thin expressions
[] Expression
Deyuy/bin/my_shell >2> [1-eq 1] && echo ' OK