Procesamiento de cadena de shell ${}
El capítulo anterior explicó por qué ${} se usa para hacer referencia a variables. ${} también tiene una función importante, que es el procesamiento de texto. Una sola línea de texto básicamente puede satisfacer todas sus necesidades.
2.1 Obtener la longitud de la cadena
2.2 Cortar la cadena
Formato:
${parameter: offset}
${parameter:offset:length}
La intersección comienza desde los caracteres desplazados y regresa a los caracteres de longitud.
2.3 Reemplazar cadena
Formato: ${parameter/pattern/string}
2.4 Intercepción de cadena
Formato:
p>
${parameter#word} # Eliminar el prefijo coincidente
${parameter##word}
${parameterword} # Eliminar el sufijo coincidente
${parameterword}
# Elimina el lado izquierdo, el patrón coincidente más corto, ## el patrón coincidente más largo.
Elimina el lado derecho, el patrón coincidente más corto y el patrón coincidente más largo.
# Retire el lado izquierdo y haga coincidir el primero de la izquierda, ## Haga coincidir el primero de la derecha.
Elimina el lado derecho, haz coincidir el primero de la derecha y haz coincidir el primero de la izquierda.
Esto sólo es cierto cuando hay un signo *.
2.5 Asignación de estado de variable
${VAR: -string} Si la variable VAR está vacía, devuelve cadena
${VAR: string} Si la VAR la variable no está Si está vacía, devuelve la cadena
${VAR:=string} Si la variable VAR está vacía, reasigna el valor de la variable VAR a la cadena
${VAR:? string} Si la variable VAR está vacía, la cadena se enviará a stderr
Este es el uso principal de ${}. Además, también puede obtener elementos de matriz, que se analizarán más adelante. capítulos.
Ejemplo: