$ {...} tiene muchos usos en cadenas:
1, $ {} fue
Límite de variables.
Si un nombre de variable A es la parte delantera de otro nombre de variable AB, entonces si desea obtener el valor de A cuando AB está conectado, debe usar la calificación $ {var}.
Si no hay ambigüedad en los nombres de variables (es decir, nombres de variables independientes), no hay diferencia entre $ {var} y $ var.
var = "hola"
var_01 = "hello01"
echo $ var $ var_01 $ {var} _01
>>> hola hola01 hola_01
2, # $ {} fue
Obtenga la longitud de la variable var
var = "hola"
echo $ {# var}
>>> 5
3, $ {var #}
Eliminar el carácter (cadena) en la cabecera de la variable,
"#" Puede ir seguido de una cadena literal o una expresión regular (coincidencia diferida).
var = "hola"
echo ${var#he}
>>> llo
var = "/ res_pos / ruta / desde / algo"
echo $ {var # /}
>>> res_pos / path / from / something # borra el primer "/"
echo $ {var # / * /}
>>> ruta / desde / algo # Eliminar la primera cadena que coincida con "/ * /", es decir, "/ res_pos /"
echo $ {var # res}
>>> / res_pos / path / from / something # res no está en el encabezado, no se eliminará
4, fue de $ {##}
Eliminar el carácter (cadena) en la cabecera de la variable,
Sin embargo, cuando se usan dos "##", la coincidencia es codiciosa (coincidencia codiciosa, es decir, tantas coincidencias como sea posible).
echo $ {var ## / * /}
>>> algo # Eliminar la primera cadena que coincida con "/ * /", es decir, "/ res_pos / path / from /".
5, $ {}% era
Eliminar el carácter (cadena) al final de la variable,
"%" Puede ser una cadena literal o una expresión regular (coincidencia diferida).
var = "hola"
echo ${var%llo}
>>> él
var = "~ / res_pos / path / from / something"
echo $ {var% / *}
>>> ~ / res_pos / path / from # borra el "/ something" final
6, $ {var} %%
Eliminar el carácter (cadena) al final de la variable,
Solo, cuando se usa 2 "%%", la coincidencia es codiciosa (correspondiente al Artículo 4)
var = "~ / res_pos / path / from / something"
echo $ {var% / *}
>>> ~ # Eliminar todo después de la primera "/" (incluyendo "/"). En la codiciosa coincidencia, "/ *" son todas las cadenas después de "/"
7, $ {} fue ::
Similar al concepto de corte de Python, tome el índice inicial de la variable var,
Subcadena de longitud especificada ($ {var: index: length}).
var = "~ / res_pos / path / from / something"
echo $ {var: 0: 5}
>>> ~ / res
echo $ {var: 1: 5}
>>> / res_ # Visible, el índice de la cadena comienza desde 0
echo $ {var :: 5}
>>> ~ / res # Omitir "índice", el valor predeterminado es comenzar desde 0
echo $ {var: 1:}
>>> / res_pos / path / from / something # Omitir "longitud", la longitud predeterminada es todo
8, fue $ {} //
Reemplazo de cuerdas.
Reemplace la cadena A en var con la cadena B ($ {var / A / B}).
var = "hola mundo"
echo $ {var / hola / hola}
>>> hola mundo # La cadena "hola" se reemplaza por "hola"
echo $ {var / l / X}
>>> heXlo world # Reemplace la primera "l" con "X"
9, $ {} fue ///
Reemplazo de cuerda,
Igual que el punto 8, excepto que ahora todas las ocurrencias de la cadena A se reemplazan con la cadena B ($ {var // A / B}).
var = "hola mundo"
echo $ {var // l / X}
>>> heXXo worXd # Todas "l" se reemplazan con "X"
10, $ {var / # /}
Reemplace la cadena A en la cabeza de la cadena con la cadena B,
($ {Var / # A / B}), a diferencia del punto 8, aquí solo se reemplaza la primera cadena A.
var = "hola mundo. hola bebé".
echo $ {var // h / H}
>>> Hola mundo. Hola bebé. # Reemplace todas las "h" con "H"
echo $ {var / # h / H}
>>> Hola mundo. Hola bebé. # Reemplaza "h" en el encabezado con "H"
echo $ {var / e / E}
>>> hola mundo. hola bebé. # Reemplaza la primera aparición de "e" con "E"
echo $ {var / # e / E}
>>> hello world. hello baby. # El primer carácter no es "e", por lo que no hay reemplazo y se muestra como está.
11, fue de $ {/% /}
Reemplace la cadena A al final de la cadena con la cadena B,
($ {Var /% A / B}), similar al punto 10, excepto que se trata del final de la cadena.
var = "hola hola"
echo $ {var /% o / END}
>>> hello hellEND # Reemplace el carácter final "o" con "END".
————————————————
Declaración de derechos de autor: Este artículo es un artículo original del blogger de CSDN "Lao Like", siguiendo el acuerdo de copyright CC 4.0 BY-SA. Adjunte el enlace original para reimprimir Y esta afirmación.
Enlace original: https://blog.csdn.net/lihonghai2392/article/details/77868445