Como exportar uma variável de um script perl para um script de shell?

3

Eu tenho um script de shell no qual estou executando o script perl abaixo do código.

perl perlscript.pl

No script perl eu defini uma variável chamada $circle . Agora eu quero usar esse valor variável no meu script de shell. Como posso ligar?

    
por user3548033 07.05.2016 / 10:34

2 respostas

4

Se o seu script perl não produzir outra saída além do valor de $ circle, você poderá usar a substituição de comando para armazenar essa saída em uma variável. Por exemplo:

circle=$(perl perlscript.pl)

Se o script perl também produzir outra saída (ou não a saída), você terá que:

  1. extraia somente o valor desejado da saída usando as ferramentas usuais de processamento de texto ( sed , awk , perl , grep , etc). Aqui está um exemplo muito simples:

    circle=$(perl perlscript.pl | sed -e 's/junk.i.dont.want//')

  2. use um método indireto, como fazer com que o script perl grave o valor de $ circle em um arquivo (por exemplo, /path/to/circle ) para que seu shell o leia (por exemplo, circle=$(cat /path/to/circle) )

NOTA: Sem mais detalhes sobre você, é impossível fornecer mais do que conselhos genéricos como este.

    
por 07.05.2016 / 12:10
-3

Basta definir uma variável de ambiente em perl e seu shell a encontrará. Em C você pode verificar seu caminho como este

void getPath() {
    if (getenv("PATH") == NULL) {
        printf("'%s' is not set.\n", "PATH");
        /* Default our path if it is not set. */
        putenv("PATH=/bin:/usr/bin:/sbin:/usr/sbin:/etc");
    }
    else if (getenv("PATH")) {
        printf("'%s' is set to %s.\n", "PATH", (getenv("PATH")));
    }
}

Também existem funções para definir seu caminho, para que você possa definir uma variável de ambiente para o seu programa em seu código.

    
por 07.05.2016 / 11:00