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