Extraia um texto específico da variável no shell script

Extraia um texto específico da variável no shell script

Eu tenho 2 variáveis

VAL1="C70AN"
VAL2="MBA30"

e eu tenho um diretório no meu sistema/opt/web/C70/MBA/

Como posso ir para este diretório usando variáveis

por exemplocd /opt/web/$VAL1/$VAL2

Como posso extrair o texto específico da variável no shell script?

Responder1

A resposta do @Anthon está perfeitamente correta, embora implique um pouco demais de digitação na IMO. Sugiro definir uma função shell (bash) chamada (por exemplo) "mycd" como wrapper:

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

Agora, independentemente dos valores que as variáveis ​​$VAR1 e $VAR1 tenham atualmente, chamar esta função mudará o diretório para o local esperado.

Experimente o seguinte exemplo em um terminal bash em execução, pressionando ENTER no final de cada janela de linha 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%

É claro que este exemplo requer a existência da árvore de diretórios "/opt/web/C70/MBA" para funcionar. Se este não for o caso, você receberá uma mensagem de erro como

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

Este resultado ainda é uma prova do correto funcionamento da função "mycd" ao tentar mudar para o diretório calculado - que (ainda) não existe.

HTH também

informação relacionada