Linux - para determinar las condiciones de shell scripts relacionados

En primer lugar, la determinación por tipo de archivo

El análisis de dos tipos de formatos de 
1, -e /root/install.log prueba.
2, [-e /root/install.log]

Nota: [-e /root/install.log], el soporte izquierda y el siguiente carácter Todo el centro; entre carácter de paréntesis a la derecha inmediatamente, hay un espacio.
Ejemplos
[root@192 cut]# cat score.txt
Id	Name	Gender	Score
1	zhangsan	M	90
2	lisi	M	88
3	wangwu	M	98
4	zhaoliu	N	97
5	NangongYi	M	100
Ejemplo: comprobar si existe un archivo score.txt
[root@192 cut]# test -e score.txt
[root@192 cut]#
Hey, ¿cómo hicieron los resultados? No se preocupe, sigue leyendo:
[root@192 cut]# echo $?
0
[root@192 cut]#
El conocimiento :? $ expreso la ejecución del comando anterior es correcta! 0 significa correcto, distinto de cero incorrecta.
Ejemplo: Comprobación de un vistazo al archivo no existe.
[root@192 cut]# test -e sss.txt
[root@192 cut]# echo $?
1
[root@192 cut]#
Bueno, que cada uno tenía que usar $? Ver, no es cierto, sobre todo inconveniente? No hay maneras buenas?
Hay [ "condición" && echo "sí" || eco "no" ] , dijo que si la condición es verdadera, la salida sí, si no está satisfecho, volver no.
Ejemplo: determinar existe directorio raíz, hay un retorno al "sí", no hay retorno "no".
[root@192 cut]# [ -d /root ] && echo "yes" || echo "no"
yes
[root@192 cut]#
Ejemplo: score.txt determinar si existe el archivo, hay un retorno al "sí", de lo contrario, devuelve "no".
[root@192 cut]# [ -f ./score.txt ] && echo "yes" || echo "no"
yes
[root@192 cut]#
Ejemplo: determinar un archivo inexistente, devolver los resultados para ver lo que es?
[root@192 cut]# [ -f ./score.txt.bak ] && echo "yes" || echo "no"
no
[root@192 cut]#

En segundo lugar, el juez, de acuerdo con los permisos de archivo

Ejemplo: para determinar si el archivo tiene permisos de escritura score.txt
[root@192 cut]# ls -l
总用量 4
-rw-r--r--. 1 root root 101 10月 21 01:04 score.txt
[root@192 cut]#

[root@192 cut]# [ -w ./score.txt ] && echo 'yes' || echo 'no'
yes
[root@192 cut]#

[root@192 cut]# [ -r ./score.txt ] && echo 'yes' || echo 'no'
Yes

[root@192 cut]# [ -x ./score.txt ] && echo 'yes' || echo 'no'
no
[root@192 cut]#

En tercer lugar, la comparación se hace entre dos archivos

Nota: para determinar si dos archivos son iguales, el juez es, el número de inodo del archivo si la misma.
[root@192 cut]# mkdir ying
[root@192 cut]#
[root@192 cut]# ls
score.txt  ying
[root@192 cut]# ln ./score.txt ./ying/se.txt
[root@192 cut]# ls
score.txt  ying
[root@192 cut]# cd ying/
[root@192 ying]# ls
se.txt
[root@192 ying]# cd ..
[root@192 cut]# ls
score.txt  ying
[root@192 cut]# [ ./score.txt -ef ./ying/se.txt ] && echo "yes" || echo "no"
yes
[root@192 cut]#

En cuarto lugar, la comparación entre los dos números enteros

Ejemplo: Comparación de 23 es igual a 32?
[root@192 cut]# [ 23 -eq 32 ] && echo 'yes' || echo 'no'
no
[root@192 cut]#
Ejemplo: Comparación de la 23 no es igual a 32?
[root@192 cut]# [ 23 -ne 32 ] && echo 'yes' || echo 'no'
yes
[root@192 cut]#
Ejemplo: Comparar 23 es mayor que o igual a 32?
[root@192 cut]# [ 23 -ge 32 ] && echo 'yes' || echo 'no'
no
[root@192 cut]#
Ejemplo: Comparar 23 es mayor que 32?
[root@192 cut]# [ 23 -gt 32 ] && echo 'yes' || echo 'no'
no
[root@192 cut]#
Ejemplo: Comparación de los 23 es menor que o igual a 32?
[root@192 cut]# [ 23 -le 32 ] && echo 'yes' || echo 'no'
yes
[root@192 cut]#
Ejemplo: Comparación de los 23 es menor que 32?
[root@192 cut]# [ 23 -lt 32 ] && echo 'yes' || echo 'no'
yes
[root@192 cut]#

V. Análisis de la cadena

Ejemplo: -z operación relacionada, se determina si una variable es nula
[root@192 cut]# name=LDR
[root@192 cut]# [ -z "$name" ] && echo 'yes' || echo 'no'
no
[root@192 cut]#
[root@192 cut]# name=''
[root@192 cut]# [ -z "$name" ] && echo 'yes' || echo 'no'
yes
[root@192 cut]#
Ejemplo: -n operación relacionada, se determina si una variable está vacía
[root@192 cut]# age=''
[root@192 cut]# [ -n "$age" ] && echo 'yes' || echo 'no'
no
[root@192 cut]#
[root@192 cut]# age=18
[root@192 cut]# [ -n "$age" ] && echo 'yes' || echo 'no'
yes
[root@192 cut]#
Nota : "==" un juicio sobre la cadena!
Ejemplo: asignación de dos variables, en comparación, e igual a no es igual
-等于
[root@192 cut]# num1=abc
[root@192 cut]# num2=bcd
[root@192 cut]#
[root@192 cut]# [ "$num1"==“$num2” ] && echo 'yes' || echo 'no'
yes

什么情况?明明不一样,那为什么会是“yes”? 原因在于双等号的左右两边没有空格,这里一定要有空格!更改:
[root@192 cut]# [  "$num1"  == “$num2” ] && echo 'yes' || echo 'no'
no
[root@192 cut]#

注意:“==”的左右两边一定要有空格!!
-不等于

[root@192 cut]# no1=hello
[root@192 cut]# no2=hello
[root@192 cut]# [ "$no1" != "$no2" ] && echo 'yes' || echo 'no'
no
[root@192 cut]#

[root@192 cut]# nun=hello
[root@192 cut]# nuu=hell0
[root@192 cut]# [ "$num" != "$nuu" ] && echo 'yes' || echo 'no'
yes
[root@192 cut]#

En sexto lugar, condicional múltiple

Ejemplos: aa asignación 11 determina si hay aa valor, mientras que la determinación de si mayor que 23 aa
[root@192 cut]# aa=11
[root@192 cut]# [ -n "$aa" -a "$aa" -gt 23 ] && echo 'yes' || echo 'no'
no
[root@192 cut]#
Ejemplos: aa asignación 24 determina si hay aa valor, mientras que la determinación de si mayor que 23 aa
[root@192 cut]# aa=24
[root@192 cut]# [ -n "$aa" -a "$aa" -gt 23 ] && echo 'yes' || echo 'no'
yes
[root@192 cut]#
Ejemplo: num asignado 55, se determina la no-num 'sí' o 'no'
[root@192 cut]# num=55
[root@192 cut]#
[root@192 cut]# [ ! "$num" ] && echo 'yes' || echo 'no'
no
[root@192 cut]#
Notas: num es 55, realmente, NUM, no es cierto, lo que es falso !. Es cierto, sí; falsa, no. falsa salida, no.
[root@192 cut]# no=''
[root@192 cut]# [ ! "$no" ] && echo 'yes' || echo 'no'
yes
[root@192 cut]#
Notas: no vacía, falsa; no, ni falso, eso es cierto !. Los verdaderos sí; falsas, no. Salida de verdad, sí.
Publicado 59 artículos originales · ganado elogios 2 · Vistas 5567

Supongo que te gusta

Origin blog.csdn.net/LDR1109/article/details/102958705
Recomendado
Clasificación