Extrai um texto particular da variável no shell script

1

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 exemplo, cd /opt/web/$VAL1/$VAL2

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

    
por Manish 29.10.2016 / 19:02

1 resposta

1

A resposta do @Anthon está perfeitamente correta, embora isso implique um pouco de IMO ao digitar. Eu sugiro definir uma função shell (bash) chamada (eg.) "Mycd" como um wrapper:

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

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

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

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 para o trabalho correto da função "mycd" enquanto ele tenta mudar para o diretório calculado - o qual (ainda) não existe.

HTH, também

substring

    
por 29.10.2016 / 20:57