Sinais de porcentagem e variável de ambiente em um script de shell

0

Durante a solução de um problema, deparei com essas entradas dadas abaixo em um dos shell scripts usados por nosso aplicativo. Isso foi escrito por alguém que não trabalha mais na empresa e estou tentando descobrir o que o script faz passo a passo. Nós temos uma variável de ambiente $ PAT_HOME. Usando o % em ambas as extremidades, ele está chamando a variável de ambiente como $ PAT_HOME? Nesse caso, como você está usando% sinais diferentes de usar ao trabalhar com variáveis de ambiente?

echo "cd " %PAT_HOME%
cd  %PAT_HOME%
# P:
echo "pan.sh -file $kmrfile $logfile_location $csvfile"

cd  $PAT_HOME
sh pan.sh -file $kmrfile $logfile_location $csvfile
    
por Sree 22.11.2014 / 18:50

2 respostas

2

Parece um híbrido entre o shell script Unix e o script batch DOS:)

No DOS, as variáveis de ambiente são acessadas ao incluir a variável de ambiente entre % . Como %PATH% , mas no Linux isso não pode ser feito.

Apenas tente

$ echo %PATH%
%PATH%

isso não expandirá a variável de ambiente. Mas o roteiro está realmente funcionando?, Porque na parte posterior do script as variáveis são acessadas com $ , mas a parte superior é acessada com % . Principalmente você deve obter erro na seção cd %PAT_HOME% a menos que um arquivo chamado %PAT_HOME% exista!.

    
por 22.11.2014 / 19:20
0

Um shell de scripts do Linux não é 100% compatível com o Windows CMD Script, você precisa fazer adaptações

Veja estes arquivos

1 - > Script de Bash

2 - > Script em lote

Mas se você quiser, pode criar um Windows CMD Script e testar com "wine cmd", funciona 100% em vinho, no Windows também funciona

O Env Vars, não é o mesmo, e algumas coisas devem ser escritas de maneira diferente

    
por 22.11.2014 / 22:01