'conjunto' comando não funciona no shell tcsh quando chamado explicitamente [duplicado]

0

O comando set funciona bem quando eu digito assim:

echo $0
/usr/bin/tcsh
echo $SHELL
/usr/bin/tcsh
set START_TIME='date +%s'
echo $START_TIME
1499360060

No entanto, não funciona quando eu chamo explicitamente em tcsh assim:

/usr/bin/tcsh -i -f -c 'set START_TIME='date +%s''
echo $START_TIME
START_TIME: Undefined variable.

Tentei fazer isso com setenv no início, mas percebi que o processo filho não pode executar o comando setenv . Então, eu percebi que set é o caminho a percorrer. Por favor, informe se há outra maneira melhor de fazer isso. Obrigado.

    
por rrlamichhane 06.07.2017 / 19:03

1 resposta

1

O problema é que você está definindo a variável em um subshell que termina então, levando sua variável com ela. Para demonstrar:

$ /bin/tcsh -ifc 'set VARIABLE=foo; echo $VARIABLE'; echo ${VARIABLE-blank}
foo
blank

(Meu shell principal é bash ; o segundo echo usa um bash ism para fornecer um valor padrão para uma expansão de variável indefinida ou nula)

    
por 06.07.2017 / 19:08

Tags