Extraiga un texto particular de una variable en un script de shell

Extraiga un texto particular de una variable en un script de shell

tengo 2 variables

VAL1="C70AN"
VAL2="MBA30"

y tengo un directorio en mi sistema/opt/web/C70/MBA/

¿Cómo puedo ir a este directorio usando variables?

Por ejemplocd /opt/web/$VAL1/$VAL2

¿Cómo puedo extraer el texto particular de la variable en el script de Shell?

Respuesta1

La respuesta de @Anthon es perfectamente correcta, aunque en mi opinión implica escribir demasiado. Sugiero definir una función de shell (bash) llamada (por ejemplo) "mycd" como contenedor:

function mycd {
  cd /opt/web/${VAL1:0:3}/${VAL2:0:3}
}

Ahora, sin importar los valores que tengan actualmente las variables $VAR1 y $VAR1, llamar a esta función cambiará el directorio a la ubicación esperada.

Pruebe el siguiente ejemplo en una terminal bash en ejecución, presionando ENTER al final de cada ventana de línea de entrada):

user% cd; pwd
/home/user
user% function mycd { cd /opt/web/${VAL1:0:3}/${VAL2:0:3} }
user% export VAL1="C70AN"; export VAL2="MBA30"
user% mycd
user% pwd
/opt/web/C70/MBA
user%

Este ejemplo, por supuesto, requiere la existencia del árbol de directorios "/opt/web/C70/MBA" para funcionar. Si este no es el caso, recibirá un mensaje de error como

bash: cd: /opt/web/C70/MBA: file or directory not found

Este resultado sigue siendo una prueba del correcto funcionamiento de la función "mycd" mientras intenta cambiar al directorio calculado, que (todavía) no existe.

HTH también

información relacionada