В команде jsvc есть опечатка. Я написал:
-classpath [...]:$CATALINA_HOME/bin/tomcat-juli.jar:[...]
, а не:
-classpath [...]:$CATALINA__HOME/bin/tomcat-juli.jar:[...]
Я удалил ненужное подчеркивание, и теперь это работает.
En bash
y usando una variable de matriz en su lugar, puede hacer algo como:
{ IFS=$'\n'; array=($(grep -Po 'name=[^-]+(?=\s*-)' infile)); }
luego imprime los elementos de la matriz (El índice de matriz en bash comienza desde 0):
printf '%s\n' "${array[@]}"
name=PolicyName
name=PolicyWorkflow
name=PolicyAction
name=PolicyName
name=PolicyWorkflow
name=PolicyAction
name=Policy Name
name=PolicyWorkflow
name=PolicyAction
O para imprimir un solo elemento:
printf '%s\n' "${array[6]}"
name=Policy Name
DefinimosIFS
como el carácter " \n
ewline" IFS=$'\n'
de modo que la división de palabras ocurrirá en el carácter " \n
ewline" solo en el resultado de sin comillas – Sustitución de comandos$(...)
.
La sintaxis { list; }
es conocida Comandos de agrupación y yo solía agrupar mis comandos.
La sintaxis array=(...)
se utiliza para crear una variable de matriz asociada denominada array
.
Con grep -Po 'name=[^-]+(?=\s*-)' infile
, imprimimos -o
solo las coincidencias que coinciden con el patrón"name="
seguido de cualquier longitud de caracteres que no sea -cero, pero un guión [^-]+
que sigue a cero -o -] más espacios en blanco hasta un guión (?=\s*-)
.
(?=...)
es positiva -lookahead y con la opción -P
de grep se puede usar para interpretar el patrón como una Perl -Expresión regular compatible (PCR). Lectura futura: