script1 é o seguinte
#!/bin/csh
echo $*
$*
Então executo o seguinte na linha de comando:
>script1 setenv VAR "/user/path" \; ls
Ele fornece saída como:
setenv VAR /user/path ; ls
setenv: Too many arguments.
Alguma idéia para consertar isso?
Responder1
Eu realmente não entendo por que você iria querer isso, mas seu problema é que você está tentando executar uma variável em vez de avaliá-la. Em vez disso, tente isto:
#!/bin/csh
echo "$*"
eval "$*"
Então
script1 setenv VAR "/user/path" \; ls
Não sei, csh
mas o problema parece estar relacionado a ter dois comandos como variável. Isso funciona conforme o esperado:
setenv aa "ls"
"$aa"
Mas isso falha e precisa de eval
:
setenv aa "ls; echo foo"
"$aa"