avaliando uma string no csh

1

script1 é o seguinte

#!/bin/csh
echo $*
$*

Em seguida, executo o seguinte na linha de comando:

>script1 setenv VAR "/user/path" \; ls

Dá saída como:

setenv VAR /user/path ; ls
setenv: Too many arguments.

Alguma idéia para corrigir isso?

    
por sac 15.10.2014 / 12:29

1 resposta

3

Eu realmente não entendo por que você gostaria disso, mas seu problema é que você está tentando executar uma variável em vez de avaliá-la. Tente isso:

#!/bin/csh
echo "$*"
eval "$*"

Então

script1 setenv VAR "/user/path" \; ls

Eu não sei csh , mas o problema parece estar relacionado a ter dois comandos como uma variável. Isso funciona como esperado:

setenv aa "ls"
"$aa"   

Mas isso falha e precisa do eval :

setenv aa "ls; echo foo"
"$aa"   
    
por 15.10.2014 / 12:59