The shell determines whether the file exists in 1. The shell determines whether the file, directory exists, or has permissions
2. #!/bin/sh
3.
4. Mypath= "/var/log/httpd/"
5. myfile= "/var/log/httpd/access.log"
6.
7. # the-x parameter here determines whether the $mypath exists and has executable permissions
8. If [!-X "$myPath"]; Then
9. mkdir "$myPath"
Ten. Fi
11.
12. # The-d parameter here determines whether $mypath exists
if [!-D "$myPath"]; Then
mkdir "$myPath"
. Fi
16.
17. # Here's the-f parameter to determine if $myfile exists
if [!-F "$myFile"]; Then
Touch "$myFile"
. Fi
21st.
22. # Other parameters also have-n,-n is to determine whether a variable has a value
if [!-n "$myVar"]; Then
echo "$myVar is empty"
Exit 0
. Fi
27.
28. # Two variables are judged equal
If ["$var 1" = "$var 2"]; Then
Echo ' $var 1 eq $var 2 '
. else
Echo ' $var 1 not EQ $var 2 '
. Fi
The difference between-F and-E
Conditional Logic on Files
-A file exists.
-B file exists and is a block special file.
-c file exists and is a character special file.
-D file exists and is a directory.
-e file exists (just the same as-a).
-F file exists and is a regular file.
-G file exists and have its setgid (2) bit set.
-G file exists and have the same group ID as this process.
-K file exists and have its sticky bit set.
-l file exists and is a symbolic link.
-N string length is not zero.
-o Named option is set on.
-O file exists and is owned by the user ID of this process.
-P file exists and is a first in, first Out (FIFO) special file or
Named pipe.
-R file exists and is readable by the current process.
-S file exists and has a size greater than zero.
-s file exists and is a socket.
-T file descriptor number Fildes is open and associated with a
Terminal device.
-U file exists and have its setuid (2) bit set.
-W file exists and is writable by the current process.
-X file exists and is executable by the current process.
-Z string length is zero.
is the difference with-s or with-f this is very big!
The shell determines whether a file or directory exists