Como posso disponibilizar uma variável de ambiente fora de um script KSH?

0

Eu tenho um script KSH que exporta uma variável de ambiente ( export SOME_VAR=123 )

Depois de executar o script, meu shell atual não é afetado e echo $SOME_VAR não produz nada.

Eu tentei executar . myScript.ksh , mas recebi o seguinte erro:

.: Permission denied.

As permissões para . são drwxr-xr-x

Alguma ideia? (Eu não sou root)

    
por RonK 29.08.2011 / 15:17

1 resposta

3

Você está usando tcsh como seu shell:

  1. tcsh não tem um comando . - somente source .

    > source myScript.ksh
    

    Em shuns sh , ksh e bash , " . " é um comando interno, não relacionado ao uso do "diretório atual" de " . "

    Em csh e tcsh , não existe tal built-in (o equivalente é chamado " source "), e usando . tentará executar < em> um diretório , daí o erro "Permissão negada".

  2. tcsh é uma derivada csh e usa uma sintaxe muito diferente para definir variáveis de ambiente:

    setenv SOME_VAR 123
    

    Isso é importante porque usar . / source faz com que o conteúdo do arquivo seja executado no shell atual , o que significa que eles devem ser uma sintaxe tcsh válida.

por 29.08.2011 / 15:37