Shell Nota de programación

  

[-a ARCHIVO] Verdadero si el ARCHIVO existe. [-b ARCHIVO] Verdadero si el ARCHIVO existe y es un archivo especial de bloques. [-c ARCHIVO] Verdadero si el ARCHIVO existe y es un archivo especial de palabras. [-d ARCHIVO] Verdadero si el ARCHIVO existe y es un directorio. [-e ARCHIVO] Verdadero si el ARCHIVO existe. [-f ARCHIVO] Verdadero si el ARCHIVO existe y es un archivo normal. [-g ARCHIVO] Verdadero si el ARCHIVO existe y SGID ya está establecido. [-h ARCHIVO] Verdadero si el ARCHIVO existe y es un enlace simbólico. [-k ARCHIVO] Verdadero si el ARCHIVO existe y se han establecido bits adhesivos. [-p ARCHIVO] Verdadero si el ARCHIVO existe y es un conducto de nombre (F si O). [-r ARCHIVO] Verdadero si el ARCHIVO existe y es legible. [-s ARCHIVO] Verdadero si el ARCHIVO existe y el tamaño no es 0. [-t FD] Verdadero si el descriptor de archivo FD está abierto y apunta a un terminal. [-u ARCHIVO] Verdadero si el ARCHIVO existe y se establece SUID (establecer ID de usuario). [-w ARCHIVO] Verdadero si el ARCHIVO existe si el ARCHIVO existe y se puede escribir. [-x ARCHIVO] Verdadero si el ARCHIVO existe y es ejecutable. [-O FILE] Verdad si el archivo existe y es un ID de usuario válido. [-G ARCHIVO] Verdadero si el ARCHIVO existe y es un grupo de usuarios válido. [-L ARCHIVO] Verdadero si el ARCHIVO existe y es un enlace simbólico. [-N ARCHIVO] Verdadero si el ARCHIVO existe y ha sido modificado desde que se leyó por última vez. [-S ARCHIVO] Verdadero si el ARCHIVO existe y es un socket. [ARCHIVO1 -nt ARCHIVO2] Si el ARCHIVO1 se ha cambiado más recientemente que el ARCHIVO2, o si el ARCHIVO1 existe y el ARCHIVO2 no es verdadero. [ARCHIVO1-no ARCHIVO2] Verdadero si el ARCHIVO1 es anterior al ARCHIVO2, o si el ARCHIVO2 existe y el ARCHIVO1 no existe. [ARCHIVO1 -ef ARCHIVO2] Verdadero si ARCHIVO1 y ARCHIVO2 apuntan al mismo dispositivo y número de nodo. [-o OPTIONNAME] Verdadero si la opción de shell " OPTIONNAME " está activada. [-Z STRING] " STRING " es cero si la longitud es cero. [-n STRING] o [STRING] " STRING " no es cero en longitud y no cero es verdadero. [STRING1 == STRING2] Si 2 cadenas son iguales. " = " se puede usar en lugar de " == " para un estricto cumplimiento de POSIX es verdadero. [STRING1! = STRING2] Verdad si las cadenas no son iguales. [STRING1 < STRING2] Verdadero si " STRING1 " ordena antes de " STRING2 &quoquo; lexicographically en la ubicación actual. [STRING1 > STRING2] Verdadero si " STRING1 " se clasifica después de " STRING2 &quoquo; lexicographically en la ubicación actual. [ARG1 OP ARG2] " OP " es uno de -eq, -ne, -lt, -le, -gt o -ge. Estos operadores binarios aritméticos devuelven true si " ARG1 " es igual a, no igual a, menos Than, menor que o igual a, mayor que, o mayor que o igual a " ARG2 ", respectivamente. " ARG1 " y " ARG2 " son números enteros.

for in format

para no $ variable en cadena do $ variable hecho un método de recorrido de enumeración de cadena simple, use el formato para en cadena para el espacio por cadena functionSERVICES = " 80 22 25 110 8000 23 20 21 3306 " Para x en $ SERVICIOS haga iptables -A ENTRADA -p tcp --dport $ x -m estado --estado NUEVO -j ACEPTAR hecho


Deje que el sed maneje solo una línea a la vez Sintaxis:

sed '/abc /s /$ //nnew line /; ta; b;: a; n; ba' Después de la primera coincidencia, ingresa en un bucle infinito, por lo que la segunda y la tercera Sub-emparejamiento no ocurrirá. : a Mark ta coincide y salta a la etiqueta ab goto Fin: a mark n lee la siguiente línea ba goto label a

sed " /abc /s /$ //nnew line /; ta; b;: a; n; ba " alert > alert1


Copyright © Conocimiento de Windows All Rights Reserved