SHELL bit by bit

1.Shell determines whether the file exists

 

#!/bin/sh
myPath="/var/log/httpd/"
myFile="/var /log/httpd/access.log"
# The -x parameter here determines whether $myPath exists and whether it has executable permissions
if [ ! -x "$myPath" ]; then
mkdir "$myPath"
be
 # The -d parameter here determines whether $myPath exists
 if [ ! -d "$myPath" ]; then
 mkdir "$myPath"
 be

 # The -f parameter here determines whether $myFile exists
 if [ ! -f "$myFile" ]; then
 touch "$myFile"
 be
 # Other parameters include -n, -n is to determine whether a variable has a value
 if [ ! -n "$myVar" ]; then
 echo "$myVar is empty"
 exit 0
 be

 # Check if two variables are equal
 if [ "$var1" = "$var2" ]; then
 echo '$var1 eq $var2'
 else
 echo '$var1 not eq $var2'
 be
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 has its setgid(2) bit set.

-G file exists and has the same group ID as this process.

-k file exists and has 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 has 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.


Whether you use -s or -f makes a big difference!


2.Shell arithmetic operations

 

$[1+2] #value:3

`expr 1 + 2` #value:3

$((1 + 2)) #value:3

 

3. Traverse each line of data in the file

while read lines

do

echo $lines

done<filename#filename is the file name

 

4. Extract row data

Awk syntax: awk /pattern/{action} filename

Simple usage of awk

Get the data of the first, column of the file:

awk '{print $1}' filename

 

5. The display date format is yyyyMMdd

date +%Y%m%d

 

6. A simple example of Map sorting by key value

 

HashMap<String, String> map = new HashMap<String, String>();
map.put("2012-07-04", "2012-07-04");
map.put("2012-07-03", "2012-07-03");
map.put("2012-07-07", "2012-07-07");
map.put("2012-07-01", "2012-07-01");

Object[] key = map.keySet().toArray();
Arrays.sort(key);
for (int i = 0; i < key.length; i++) {
	System.out.println(map.get(key[i]));
}



 

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326847970&siteId=291194637
Bit
BIT